TLS Verification Error 21번 오류

TLS Verification Error 21번 오류

2020, Nov 16    

HTTPS 서비스를 위해 letsencrypt에서 받은 인증서를 적용하고 인증서 상태 체크를 해보면 아래와 같이 “Verification Error”가 발생하는 경우가 있다.

"Verify return code: 21 (unable to verify the first certificate)"

위와 같은 경우는 인증서에 문제가 있다기 보다는 fullchain.pem이 아닌 경우에 발생하는 문제이며 “openssl” 명령어를 이용해서 확인해 본다.

X509 Certificate 인증서 정보 보기

$ openssl x509 -text -noout -in fullchain.pem

HTTPS 연결의 인증서 디버깅 명령어

$ openssl s_client -debug -connect softroom.duckdns.org:443

Verification error 발생.

letsencrypt에서 발급받은 인증서 중 chain.pem을 적용한 후 TLS 연결 시험시 아래와 같이 “Verify return code: 21”오류가 발생한다.

$ openssl s_client -debug -connect softroom.duckdns.org:443
. . . (skip)
---
SSL handshake has read 2127 bytes and written 488 bytes
Verification error: unable to verify the first certificate
---
SSL-Session:
    . . . (skip)
    Start Time: 1605495880
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
    Extended master secret: no                                                                                     

Verification OK

letsencrypt에서 발급받은 인증서 중 fullchain.pem을 적용한 후 다시 연결 시험을 해 보면 아래와 같이 OK 상태로 보인다.

$ openssl s_client -debug -connect softroom.duckdns.org:443
. . . (skip)
---
SSL handshake has read 3304 bytes and written 488 bytes
Verification: OK
---
SSL-Session:
    . . . (skip)
    Start Time: 1605498237
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no

letsencrypt 인증서 파일

letsencrypt에서 발급받은 인증서 파일은 아래와 같다.

cert.pem -> ../../archive/softroom.duckdns.org/cert6.pem
chain.pem -> ../../archive/softroom.duckdns.org/chain6.pem
fullchain.pem -> ../../archive/softroom.duckdns.org/fullchain6.pem
privkey.pem -> ../../archive/softroom.duckdns.org/privkey6.pem

참고 URL