COMODO SSL 인증서로 OCSP stapling 인증받기
컨텐츠 정보
- 12,299 조회
- 1 댓글
- 0 추천
- 목록
본문
SSLlabs에서 SSL 보안 점수 높이려고 노력하다가 겨우 OSCP stapling을 받았네요.
완전히 처음보는 개념들이 많아서 거의 하루 밤샜네요 ㅠㅠ
스샷에 보다시피
OCSP stapling | Yes |
를 받기위해 부단히 노력했습니다.
간단하게 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 서버 설정에서
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/
-
등록일 2020.10.10그누보드 SMTP 외부메일 설정하는 방법댓글 26
-
등록일 2020.10.03그누보드5에 실시간 채팅 구축하기댓글 13
-
등록일 2020.09.26
-
등록일 2020.09.24도커로 메일서버 구축하기댓글 4
관련자료
-
서명우성짱의 NAS를 운영하고 있습니다.
저의 즐거움이 여러분의 즐거움이면 좋겠습니다.
-
링크