SSL/TLS

CRL, OCSP와 OCSP Stapling 의 개념과 설정

  • jroh

SSL/TLS에서는 암호화 통신의 기반이 되는 인증서 관리가 매우 중요합니다. CRL, OCSP, OCSP Stapling 의 원리와 관계를 알아보도록 하겠습니다.

1. CRL (Certificate Revocation List)

CRL은 인증서 폐기 목록입니다. HTTPS 접속 후 클라이언트는 인증서의 CRL주소에서 CRL List를 다운로드해 폐기여부를 확인합니다.

하지만 CRL은 전체 목록을 다운로드해야 하는 단점이 있습니다. 그래서 처리시간이 느립니다. CRL은 인증서 폐지내역을 블랙리스트로 관리하는 방식입니다.

2. OCSP (Online Certificate Status Protocol)

OCSP는 RFC2560에서 소개되었으며 인증서의 상태를 실시간으로 체크하기 위한 프로토콜입니다. 인증서의 시리얼을 통해 실시간으로 CA 서버에 조회하며, 서버는 good/revoked/unknown으로 응답합니다. OCSP는 화이트리스트 방식이라고 볼 수 있습니다.

3. OCSP Stapling

OCSP도 모든 클라이언트가 OCSP서버에 직접 요청해야 하는 부담이 있습니다. OCSP Stapling은 클라이언트가 직접 OCSP를 확인하는 것이 아니라 웹서버가 중계해서 인증서 만료여부를 처리합니다. 웹서버가 OCSP서버에 확인하고, 클라이언트는 웹서버를 통해 인증서 만료여부까지 확인하는 방식입니다.

4. OCSP Stapling 설정법 (Nginx)

server
{
    listen 443 ssl;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_certificate /etc/ssl/bundle.crt;
    ssl_certificate_key /etc/ssl/your_domain_name.key;

    ssl_stapling on;
    ssl_stapling_verify on;
}

5. OCSP Stapling 적용여부 확인

root@rsec:/rsec# openssl s_client -connect rsec.kr:443 -tls1 -tlsextdebug -status
...
OCSP Response Status: successful (0x0)
...
Cert Status: good

https://www.htbridge.com/ssl/ 를 이용해도 확인 가능합니다.

6. 결론

SSL암호화 통신의 근거가 되는 인증서의 무결성 여부는 SSL/TLS 통신 신뢰의 핵심입니다. CRL, OCSP, OCSP Stapling의 원리를 이해하면 트러블슈팅이 쉬워집니다.

읽어주셔서 감사합니다~~


📎

PFS (Perfect Forward Secrecy) 란 무엇일까?SSL/TLS