다음과 같은 명령어를 이용하여서, 도메인(사이트)에 설정되어 있는 SSL 인증서 정보를 Linux 환경에서 볼 수 있다. 단, Linux에는 OpenSSL이 설치되어 있어야 한다. 명령어: echo "" |openssl s_client -connect 도메인주소:https포트 | openssl x509 -noout -text -fingerprint 예시(구글): echo "" |openssl s_client -connect www.google.com:443 | openssl x509 -noout -text -fingerprint 위 명령어를 통해서 서명해시알고리즘, 발급자, 유효기간, 공개키 알고리즘 등을 알 수 있다. SSL 인증서 정보 확인하기SSL 인증서를 사용하여 운영 중인 웹 서버의 정보를 확인하기 위해서 여러 방법이 있다. 확인을 할 수 있는 여러 가지 툴(Tool)이 있지만 이번에는 기본적으로 사용하는 "openssl / curl" 명령어를 이용하여 확인하는 방법을 알아보도록 하자. 1. OpensslOpenssl 명령어는 인증서를 다루는 경우 많이 사용되는 명령어이다. 해당 명령어를 통해서 기본적으로 인증서 설정 및 확인 등에 사용할 수 있다. OpenSSL - 위키백과, 우리 모두의 백과사전 OpenSSL 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 아래 명령어를 통해서 SSL 인증서에 대한 여러 정보를 확인할 수 있다.
1.1 Certificate chain명령어 입력 후 처음 나오는 내용은 인증서 발급자들의 정보를 출력한다. 0번은 해당 인증서를 사용하는 웹서버 도메인의 정보를 출력한다. 1번은 중간 인증 기관의 도메인의 정보를 출력한다. 2번은 루트 인증 기관의 도메인의 정보를 출력한다.
1.2 Server certificate해당 내용은 BEGIN CERTIFICATE ~ END CERTIFICATE까지 서버에서 사용하는 인증서 정보가 출력된다.
1.3 Connection information해당 내용에서는 인증서 연결된 여러 정보들이 출력된다. 여기서 중요하게 확인해야 하는 부분은 빨간색 박스로 표시해놓았다. 첫 번째 박스 내용은 현재 SSL로 핸드쉐이킹(handshake) 하여 연결되었다는 정보이다. 두 번째 박스 내용은 TLSv1/SSLv3의 프로토콜(Protocol) 및 ECDHE-RSA-AES128-GCM-SHA256 암호(Cipher)로 새롭게 연결되었다는 정보이다. 여기서 TLSv1/SSLv3에 의미는 TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3 및 SSLv3의 프로토콜과 연결이 가능하다는 의미이다. 세 번째 박스 내용은 현재 SSL Session(세션)이 연결된 프로토콜(Protocol) / 암호(Cipher)의 정보를 나타낸다.
openssl 명령어의 옵션 등을 통해서 좀 더 자세한 내용들을 확인할 수 있으며, 이 부분은 다시 한번 자세히 작성하도록 하겠다. 2. CURLCURL 명령어는 다양한 통신 프로토콜을 이용하여 데이터 전송 및 수신을 할 수 있는 명령어이다. 해당 명령어는 너무나도 많이 사용되고 있으며 해당 명령어를 통해서도 인증서 정보를 확인할 수 있다. cURL - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 아래 명령어를 통해서 SSL 인증서에 대한 여러 정보를 확인할 수 있다.
curl 명령어를 통해서 출력되는 여러 정보들이 openssl 명령어보다는 정보가 조금 부족하긴 하나 필요한 정보는 다 확인할 수 있다. 여기서 중요하게 확인해야 하는 부분은 빨간색 박스로 표시해놓았다. 첫 번째 박스 내용은 현재 SSL 연결된 프로토콜(Protocol) / 암호(Cipher)의 정보를 나타낸다.
두 번째 박스 내용은 발급자 인증서의 정보를 출력하고 있다.
이처럼 openssl / curl 명령어를 통해서 SSL 인증서 정보를 확인하는 방법을 알아보았다. 다음에는 해당 명령어가 아닌 Tool(툴)을 이용하여 확인하는 방법에 대해서 작성하도록 하겠다. 3. 기타HTTPS의 동작 방식에 대해서도 정리한 내용을 간단히 확인해보면 설명한 SSL 인증서 확인이 왜 필요한지 좀 더 알기 쉬울 것이다. 아무리 HTTPS로 서비스를 한다고 해도 정식적으로 CA 기관 등에서 인증되지 않은 인증서를 사용하는 곳이라면 중요 정보를 사용하는 게 꺼려지기 때문이다. [Info] 쉽게 설명한 HTTPS 동작 방식 쉽게 설명한 HTTPS 동작 방식 우연히 웹사이트를 보다가 HTTPS 동작 방식에 대해서 만화로 재미있게 정리해놓은 사이트를 발견하였다. HTTPS 동작 방식에 대해서 잘 설명이 되어있고, 한글로 번역 happylie.tistory.com |