마지막 수정 날짜 : 2017년 4월 24일
— 문제점(?)은 다음 링크 참조
이전 글에서 네이버의 답변 내용을 다시 한 번 보자.
문제점
자… 루트 인증서의 문제라고 분명히 밝혔다. 하지만 AlphaSSL 같은 사이트는 인식이 되는데 내 사이트는 인식이 안 되더라.
그래서 원인을 찾아 보기로 했다.
원인 확인하기
가장 단순하게 SSL 을 비교했다. 비교 사이트는 https://ssllabs.com/ssltest/ 을 이용했다.
여러가지 종합 결과, 다른 부분은 SSL Cipher 에서 DHE 사용/사용 안 함의 차이였다.
즉, DHE (DH Parameter 1024비트 초과하여 사용) 문제로 밝혀졌다. (Java 6u45 쪽하고 똑같이 처리되는 것 같다.)
DHE 를 쓰지 않거나 DH Parameter 1024비트를 사용하면 되는데, 아무래도 전자가 더 낫다고 판단하여 아래와 같이 해결하였다.
(DH Parameter 를 1024비트로 사용하면 Weak 가 뜨게 된다. 쓰지 말 것.)
* 참고: ECC 인증서는 뭘 해도 안 된다. ECC+RSA 같은 하이브리드 인증서가 아니라면 RSA 를 쓰도록 하자.
RSA 4096비트/2048비트 등은 상관이 없는 것 같다.
해결 방법
nginx 에서 SSL Cipher 설정을 다음과 같이 하자.
1 |
ssl_ciphers EECDH+CHACHA20:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:!MD5; |
— 내용 수정 (2017.04.11) : 3DES 이슈로 인한 Cipher 수정 (3DES 부분만 제거했다.)
그리고 나서 서버를 reload 혹은 restart 를 해 주면 된다.
다음과 같이 잘 나오는 것을 확인할 수 있다.
제대로 된 답변도 아닌 엉뚱한 답변을 주고는 기다리라고 1년간 방치를 해두다니…
결론
네이버 개X끼… 힘들게 삽질을 시키다니..