리눅스 SSL 인증서 만료일 확인

어떤 사이트의 SSL 인증서 만료일을 확인하려면 어떻게 해야 할까? 기본적으로 웹 브라우저에서 확인이 가능하다. 예를 들어 www.google.co.kr의 SSL 인증서를 확인해보자.

인터넷 익스플로러 11의 경우 아래와 같이 확인이 가능하다.


구글 크롬의 경우 아래와 같이 확인이 가능하다.


그나저나 구글은 인증서 유효 기간을 꽤 짧은 90일 단위로 가져가나보다.


이처럼 PC에서는 웹 브라우저를 통해 간단히 SSL 인증서의 만료일을 확인할 수 있다.

그런데 리눅스 서버 관리자 입장에서는 어떨까? 현재 웹 서버에 설정된 SSL 인증서가 언제 만료될 것인지, 새로 설치하려고 하는 인증서가 과연 올바른 인증서인지... 미리 확인해보고 싶다면?

아래와 같이 openssl로 확인이 가능하다. 인증서 파일을 지정해주고 -text 해주면 인증서에 관한 많은 정보가 텍스트로 출력된다. 내용 중에 유효 기간에 대한 정보도 포함되어 있다.

[root@CentOS ~]# openssl x509 -in /app/apache/conf/server.crt -noout -text
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 9742171745232909342 (0x873325960774741e)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=XX, L=Default City, O=Default Company Ltd, CN=www.test01.com
        Validity
            Not Before: May 27 10:02:01 2014 GMT
            Not After : May 27 10:02:01 2015 GMT
        Subject: C=XX, L=Default City, O=Default Company Ltd, CN=www.test01.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
... 이하 생략 ...


유효 기간에 대한 정보만 간략하게 보려면 -dates를, 만료일만 보고싶다면 -enddate를 붙이면 된다.

[root@CentOS ~]# openssl x509 -in /app/apache/conf/server.crt -noout -dates
notBefore=May 27 10:02:01 2014 GMT
notAfter=May 27 10:02:01 2015 GMT
[root@CentOS ~]#
[root@CentOS ~]# openssl x509 -in /app/apache/conf/server.crt -noout -enddate
notAfter=May 27 10:02:01 2015 GMT


만약 방화벽 등의 이유로 인해 직접 PC에서 웹 브라우저로 접속하여 인증서를 확인해볼 수 없는 상황이라면 어떻게 해야 할까? 이 경우 해당 서버의 HTTPS 포트로 접속할 수 있는 다른 리눅스 장비에서 아래와 같이 openssl을 통해 확인이 가능하다.

[root@CentOS ~]# echo | openssl s_client -connect 192.168.0.101:443 2>/dev/null | openssl x509 -noout -dates
notBefore=May 27 10:02:01 2014 GMT
notAfter=May 27 10:02:01 2015 GMT