NGINX SSLLab 100점 설정 (내용및 설정 추가)
2017.09.08 08:34
모든 점수 100점입니다 (4096bit 암호화 + 384bit 커브라는 상당히 무거운 설정이므로 처리해야할 패킷이 많은 경우는 추천하지 않고, AES-NI 지원되는 머신에서만 써주세요)
효율 조금이라도 중시한다면 일부 고치셔야합니다
초회 https 리다이렉트는 물른이고, 에러처리, 로그설정까지 다 들어있습니다
파일 경로등은 알아서 고쳐서 써주세요
100점 뜨게 만들려면 생성에 긴 시간(7세대에서 10분)이 소비되지만, DH생성시 반.드.시 4096비트를 쓰셔야 합니다 (8192비트 생성하신다면 최저 몇시간은 각오하셔야합니다)
OCSP Must Stample을 활성화하실려면 인증서 생성시 OpenSSL conf에서
[ v3_req ]를 찾으신후 최하단에
1.3.6.1.5.5.7.1.24 = DER:30:03:02:01:05
1줄 추가후 생성해주셔야 합니다
CAA는 도메인의 DNS전파값에 CAA항목을 추가하셔야 활성화됩니다
커브에 X25519를 넣으면 (설령 뒤쪽에 넣더라도) TLS1.3경우 이게 우선시됩니다 (스캐너 결과에서 -10점 됩니다)
다만 효율 고려시 X25519를 우선 설정하시길 추천합니다 (차후 X448이 지원되면 X448:X25519:secp384r1순으로 설정하시길 추천합니다) (secp521r1은 크룸이 미지원이라 호환성용 커브는 384를 남겨두시길 추천합니다)
이 설정으로도 Windows 7 SP1 + IE8(단 인터넷 옵션에서 TLS1.2 활성화) MSDN이미지로도 접속 가능한걸 확인했으므로 XP SP3 + IE6~8을 고려하시는게 아닌 이상 하위 호환성은 신경 안 쓰셔도 됩니다 (Android 4대 순정 브라우저도 시험 완료)
-----------------------------------------------------------
User Agent 감지 기능을 추가하였습니다
이를 통해 TLS1.2를 사용 불가능한 브라우저를 걸려낼 수 있습니다
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
http://www.useragentstring.com/pages/useragentstring.php?name=Chrome
https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
를 참조하여 User Agent값 확인하였고,
https://en.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers
를 참조하여 필요 버전 확인했습니다
추신 : TLS 1.2 지원 여하를 감지하게 만들려고 했는데, 대체 뭘 지정해야하는지도 모르겠군요