본문 바로가기
+ Security

[Info] SSL 인증서 정보 확인하기(Checking SSL certificate information)

by :: Teacher :: 2020. 12. 1.
728x90
반응형

SSL 인증서를 사용하여 운영 중인 웹 서버의 정보를 확인하기 위해서 여러 방법이 있다. 

확인을 할 수 있는 여러 가지 툴(Tool)이 있지만 이번에는 "openssl / curl" 명령어를 이용하여 확인해보도록 하자.

1. openssl

아래 명령어를 통해서 SSL 인증서에 대한 여러 정보를 확인할 수 있다.  

  • $ openssl s_client -connect 웹서버 주소:443
# openssl 명령어를 이용한 SSL인증서 정보 확인하기


$ openssl s_client -connect www.daum.net:443
CONNECTED(00000006)
depth=3 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify return:1
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = Thawte TLS RSA CA G1
verify return:1
depth=0 C = KR, ST = Jeju-do, L = Jeju-si, O = Kakao Corp., CN = *.daum.net
verify return:1
---
Certificate chain
 0 s:/C=KR/ST=Jeju-do/L=Jeju-si/O=Kakao Corp./CN=*.daum.net
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte TLS RSA CA G1
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte TLS RSA CA G1
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root G2
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root G2
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGYzCCBUugAwIBAgIQAmI21lCqO/XUc4uYqJP0xDANBgkqhkiG9w0BAQsFADBe
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMR0wGwYDVQQDExRUaGF3dGUgVExTIFJTQSBDQSBHMTAe
Fw0yMDA2MDUwMDAwMDBaFw0yMjA5MDQxMjAwMDBaMFwxCzAJBgNVBAYTAktSMRAw
DgYDVQQIEwdKZWp1LWRvMRAwDgYDVQQHEwdKZWp1LXNpMRQwEgYDVQQKEwtLYWth
byBDb3JwLjETMBEGA1UEAwwKKi5kYXVtLm5ldDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOnj3ARoxjMrWds3tzUBKnEUEpknrfFuYeNUhELFJwK9Pygo
1XID1alo8zFFmeNUZ0Ucm/rOnA5x6OFH6cnqNUjCklBoRyTvKvQfmGsRO1Bw2Tgo
4wee997e6x6FM53m97sOUT+alW+VtT0jpBVfx63bTfxy/YA28uiLp7hCBbNuvCzs
IJFRkzPU69MdCTCJBxG5vcARgL8A7JPhgmfXjJ6gWkuptZc5CFQl48DBZjmgNonM
y343iLdCIaNZWDx2BdObRoE2QByXsORd/LQikVcEPGuEVTkb5HxIWgGKqN76inf1
plon2vsC3PPZ7fAXM7SWvMPEplc00iuN65bJrBsCAwEAAaOCAx0wggMZMB8GA1Ud
IwQYMBaAFKWM/jLM6w8s1BnGCLgAJIhdw8W3MB0GA1UdDgQWBBSZvFqigjJnVYnb
5jg9JBVq7QBq2jAfBgNVHREEGDAWggoqLmRhdW0ubmV0gghkYXVtLm5ldDAOBgNV
HQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDsGA1Ud
HwQ0MDIwMKAuoCyGKmh0dHA6Ly9jZHAudGhhd3RlLmNvbS9UaGF3dGVUTFNSU0FD
QUcxLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAqMCgGCCsGAQUFBwIBFhxo
dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAECAjBwBggrBgEFBQcB
AQRkMGIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9zdGF0dXMudGhhd3RlLmNvbTA6Bggr
BgEFBQcwAoYuaHR0cDovL2NhY2VydHMudGhhd3RlLmNvbS9UaGF3dGVUTFNSU0FD
QUcxLmNydDAJBgNVHRMEAjAAMIIBfQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdgAp
eb7wnjk5IfBWc59jpXflvld9nGAK+PlNXSZcJV3HhAAAAXKDxsDjAAAEAwBHMEUC
IDmwm3oQ+wNMOKov5zjnEUtjt0+rHOQJHHtAg0+H2bcpAiEAhv7E/B7+zEsW/sEK
SxXgulKnho462Dlu9qK5GhXR5OgAdQAiRUUHWVUkVpY/oS/x922G4CMmY63AS39d
xoNcbuIPAgAAAXKDxsENAAAEAwBGMEQCIAJffyox++XsBjYlkAKPPxzT8V0+LmoX
76Vro81MqiDAAiBkuYWX1LBjYSWvtOZtssEUir5S19in0MVszrcCSviIdgB2AEHI
yrHfIkZKEMahOglCh15OMYsbA+vrS8do8JBilgb2AAABcoPGwN8AAAQDAEcwRQIh
AP94nNOpzwxYiR6SZvHuOtNTTZGswi36iFGnBgCYb/uwAiAgBJu26LzKXqX71rdM
tA38pWLaIHtPjWkXJsqR44HuozANBgkqhkiG9w0BAQsFAAOCAQEAwGaKxAf6gjx9
gqFiABLG5bkmJLK2puA0UU8ThlnS+HE6pZAYoektjZVwPWxyO6rI4+HPoPKsZHae
gBgyqsNNM2Cn1xjsdcRmClM7jLs+XviR5HMF0ZEPq30qwSF11CRQrjwWs2gT6ksM
g7JtBOg8J9KbBig9VititbwGWu44OQIGmJ2ea1V0vDii8UWr5xBB7BOXtCNYefbU
1eD8rOyIDQj1hhGl2pWviVtrJqWpN285U4hXVHldB1tHQZt/7jRBU+R7nALCHAuH
j19BCvdjfqibXUEOy50q8TJKpyoxZAQVrlUGOL7CL6x5xLNN+YV54I7SRVl3hzv6
ygXMOSXeoA==
-----END CERTIFICATE-----
subject=/C=KR/ST=Jeju-do/L=Jeju-si/O=Kakao Corp./CN=*.daum.net
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=Thawte TLS RSA CA G1
---
No client certificate CA names sent
---
SSL handshake has read 4231 bytes and written 538 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : AES256-SHA
    Session-ID: A06E32532402A817FBBE01C37B01E7529470B133D6D83053726ECE41C7441A70
    Session-ID-ctx:
    Master-Key: 2144D6F4DE577774A04922021381ACA04FEA3D2375D13663F5966AF2A33E3EB9016472918727467A3CDBF2A1F2E95A05
    Start Time: 1606826925
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---

1.1 Certificate chain

명령어 입력 후 처음 나오는 내용은 인증서 발급자들의 정보를 출력한다.

0번은 해당 인증서를 사용하는 웹서버 도메인의 정보를 출력한다. 

1번은 중간 인증 기관의 도메인의 정보를 출력한다.

2번은 루트 인증 기관의 도메인의 정보를 출력한다.

1.2 Server certificate

해당 내용은 BEGIN CERTIFICATE ~ END CERTIFICATE까지 서버에서 사용하는 인증서 정보가 출력된다.

1.3 Connection information

해당 내용에서는 인증서 연결된 여러 정보들이 출력된다. 

여기서 중요하게 확인해야 하는 부분은 빨간색 박스로 표시해놓았다. 

첫 번째 박스 내용은 현재 SSL로 핸드쉐이킹(handshake) 하여 연결되었다는 정보이다.

두 번째 박스 내용은 TLSv1/SSLv3의 프로토콜(Protocol) 및 AES256-SHA 암호(Cipher)로 새롭게 연결되었다는 정보이다.

여기서 TLSv1/SSLv3에 의미는 TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3 및 SSLv3의 프로토콜과 연결이 가능하다는 의미이다.

세 번째 박스 내용은 현재 SSL Session(세션)이 연결된 프로토콜(Protocol) / 암호(Cipher)의 정보를 나타낸다.

openssl 명령어의 옵션 등을 통해서 좀 더 자세한 내용들을 확인할 수 있으며, 이 부분은 다시 한번 자세히 작성하도록 하겠다.

728x90
반응형

2. CURL

아래 명령어를 통해서 SSL 인증서에 대한 여러 정보를 확인할 수 있다.  

  • $ curl -vvI https://웹서버 주소
# CURL 명령어를 이용한 SSL인증서 정보 확인하기


$ curl -vvvI https://www.daum.net
*   Trying 203.133.167.16...
* TCP_NODELAY set
* Connected to www.daum.net (203.133.167.16) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / AES256-SHA
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=KR; ST=Jeju-do; L=Jeju-si; O=Kakao Corp.; CN=*.daum.net
*  start date: Jun  5 00:00:00 2020 GMT
*  expire date: Sep  4 12:00:00 2022 GMT
*  subjectAltName: host "www.daum.net" matched cert's "*.daum.net"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Thawte TLS RSA CA G1
*  SSL certificate verify ok.
> HEAD / HTTP/1.1
> Host: www.daum.net
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Tue, 01 Dec 2020 13:15:48 GMT
Date: Tue, 01 Dec 2020 13:15:48 GMT
< X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
< X-UA-Compatible: IE=10
X-UA-Compatible: IE=10
< Expires: Sat, 01, Jan 1970 22:00:00 GMT
Expires: Sat, 01, Jan 1970 22:00:00 GMT
< Pragma: no-cache
Pragma: no-cache
< Cache-Control: no-cache, no-store, must-revalidate
Cache-Control: no-cache, no-store, must-revalidate
< P3P: CP="ALL DSP COR MON LAW IVDi HIS IVAi DELi SAMi OUR LEG PHY UNI ONL DEM STA INT NAV PUR FIN OTC GOV"
P3P: CP="ALL DSP COR MON LAW IVDi HIS IVAi DELi SAMi OUR LEG PHY UNI ONL DEM STA INT NAV PUR FIN OTC GOV"
< Content-Type: text/html;charset=UTF-8
Content-Type: text/html;charset=UTF-8
< Content-Language: en-US
Content-Language: en-US
< Content-Length: 231098
Content-Length: 231098
< Vary: Accept-Encoding
Vary: Accept-Encoding
< X-UA-Device-Type: pc
X-UA-Device-Type: pc
< Connection: close
Connection: close

<
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, close notify (256):

 

curl 명령어를 통해서 출력되는 여러 정보들이 openssl 명령어보다는 정보가 조금 부족하긴 하나 필요한 정보는 다 확인할 수 있다.

여기서 중요하게 확인해야 하는 부분은 빨간색 박스로 표시해놓았다.

첫 번째 박스 내용은 현재 SSL 연결된 프로토콜(Protocol) / 암호(Cipher)의 정보를 나타낸다.

두 번째 박스 내용은 발급자 인증서의 정보를 출력하고 있다. 

이처럼 openssl / curl 명령어를 통해서 SSL 인증서 정보를 확인하는 방법을 알아보았다. 

다음에는 해당 명령어가 아닌 Tool(툴)을 이용하여 확인하는 방법에 대해서 작성하도록 하겠다. 

참고 문서 : 

 

[Info] HTTPS 동작 방식 코믹스

우연히 웹사이트를 보다가 HTTPS 동작 방식에 대해서 만화로 재미있게 정리해놓은 사이트를 발견하였다. HTTPS 동작 방식에 대해서 잘 설명이 되어있고, 한글로 번역도 잘 되어있다. 모바일로 보면

info-lab.tistory.com

728x90
반응형

댓글


loading