작업실

COMODO SSL 인증서로 OCSP stapling 인증받기

컨텐츠 정보

본문

 

SSLlabs에서 SSL 보안 점수 높이려고 노력하다가 겨우 OSCP stapling을 받았네요.

 

완전히 처음보는 개념들이 많아서 거의 하루 밤샜네요 ㅠㅠ

 

스샷에 보다시피 

 

 

OCSP staplingYes

 

를 받기위해 부단히 노력했습니다.

 

 

간단하게 OCSP 적용이 되는지 확인하려면

 

1. 서버에 하나의 HTTPS 사이트가 있을 때

 

openssl s_client -connect wsgvet.com:443 -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"

 

 

2. 서버에 여러개의 HTTPS 사이트가 있을 때

 

openssl s_client -connect wsgvet.com:443 -servername wsgvet.com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"

 

위의 명령어를 넣었을 때

 

OCSP response:

OCSP Response Data:

    OCSP Response Status: successful (0x0)

    Response Type: Basic OCSP Response


위와 같은 반응이 나와야 정확하게 적용된 것입니다.


그렇다면 Nginx 기준으로 어떻게 적용하는지 적어보겠습니다.

 

 

Nginx 서버 설정에서

 


ssl_certificate /.../chain.crt;
ssl_certificate_key /.../myserver.key;
 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /.../dhparams.pem;
ssl_session_tickets        on;
ssl_session_ticket_key /.../session_ticket.key;
ssl_trusted_certificate /.../comodo.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

 

위와 같이 설정했습니다.

 

Strict-Transport-Security 설정이 빠졌는데, 제 홈페이지가 기본적으로 Http 만 이용하고 있어서 HSTS를 적용하니 Https에서 Http로 못돌아가더라구요. 

 

그래서 그것만 빼고 나머지는 거의 다 적용했습니다.

 

특이점이 있다면 세션 티켓 키가 있다는 것인데요.

 

이건 쉽게 서버에서 생성할 수 있습니다.

 

openssl rand 48 > session_ticket.key 

 

위와 같이 생성 후 파일 위치만 잡아주면 됩니다.

 

 

그리고 OCSP Stapling에 2가지 방법?이 있는 것 같은데요.

 

서버에서 인증받은 파일을 넣는 것과, 접속할 때마다 인증 받는 것입니다. (이건 확실치 않아요... 영어실력이 딸려요 ㅠㅠ)

 

그래서 일단 두가지 다 작업을 했었는데요.

 

인증받은 파일은 2번째 링크에 보시면 COMODO 전용 pem 파일이 있습니다. 이것을 받아서 서버에 업로드 후 

 

sl_trusted_certificate /.../comodo.pem; 

 

위와 같이 위치 지정해주시면 되고요.

 

저는 예전에 코모도 제일 저렴한 인증서를 샀는데 적용이 잘 됩니다. (http://www.wsgvet.com/bbs/board.php?bo_table=blog&wr_id=329)

 

 

그리고 인증받는 방법은

 

첫번째 링크에서 보고 따라해봤는데요.

 

COMODO의 경우

 

openssl ocsp -CAfile 3.crt -issuer 2.crt -cert 1.crt -no_nonce -text -url http://ocsp.comodoca.com 

 

위 명령어를 넣으니 인증 받아지더라구요. 인증서 순서는 루트 - 중간 - 사이트 인증서 순서라고 보시면 됩니다. 이건 위에 인증서 구입 링크 보시면 어떤 파일인지 아실 듯 합니다.

 

그리고 위와 같이 인증 받을 때 유효기간이 3~5일 정도 밖에 안됩니다. 그래서 crontab에 매일 한번씩 실행하라고 넣어뒀습니다.

 

10 5 * * * /usr/bin/openssl ocsp -CAfile /...l/3.crt -issuer /.../2.crt -cert /.../1.crt -no_nonce -text -url http://ocsp.comodoca.com >> /var/log/nginx/ocsp.log 

 

 

그리고 테스트 서버에서 letsencrypt 인증서 받아서 OCSP 인증 받으려고 하는데 잘 안되네요 ㅠㅠ 이건 해보고 다시 올려보도록 하겠습니다.

 

 

현재 제 서버 점수고요. ( 링크 ) A+ 가 아닌 것은 HSTS를 적용하지 않아서 그런 듯 합니다.

 

현재 사이트 전체 Https 적용 테스트 중인데... 만약에 Https로 넘어간다면 A+ 나올 듯 합니다.

 

 

참고 사이트

 

https://imququ.com/post/my-nginx-conf-for-wpo.html 

https://imququ.com/post/my-nginx-conf.html 

https://imququ.com/post/why-can-not-turn-on-ocsp-stapling.html 

https://blog.hakase.kr/nginx-ssl-set 

https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/ 

관련자료

댓글 1 / 1 페이지

우성군님의 댓글

음.. 그런데 이거 적용하고 좀 있으니 바로 No 되어 버리네요 ㅠㅠ

왜 그런지는 모르겠네요...

HPKP 적용 중에 서버키를 날려버려서 그냥 letsencrypt로 넘어갔습니다.

OCSP 신경 안써도 바로 ON 뜨네요.
전체 157 / 9 페이지
RSS

최근글


새댓글


알림 0