서버 SSLLabs SSL 테스트에서 A 받기
2016.04.30 10:39
이번 강좌에서는 SSL 인증서 설정을 통해 SSLLabs SSL 테스트에서 A등급을 받아보도록 하겠습니다. SSLLabs의 테스트는 현재 해당 사이트의 SSL 설정의 취약점을 체크해주는 테스트로, 이 테스트에서 높은 등급을 받는다면 현재까지 알려진 SSL 취약점으로부터는 안전하다고 할 수 있습니다.
일단 저는 nginx 서버를 사용하므로 nginx 서버 기준으로 설명하도록 하겠습니다.
1. SSLv3 비활성화
많은 취약점이 발표된 SSLv3 프로토콜을 비활성화합니다. 이 설정 사용시 IE6에서는 해당 웹사이트에 접속할 수 없습니다.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
2. SSL 암호화 방식 설정
SSL 암호화 방식(Cipher)를 설정하여 취약점이 존재하는 암호화 방식(MD5, RC4 등)을 비활성화합니다. 적당히 호환성을 고려하면서 안전하다고 알려진 Cipher만 모았습니다.
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AES128:!RSA+AES128:!EECDH+AES256:!RSA+AES256:!EECDH+3DES:!RSA+3DES:!MD5:!3DES;
3. (선택) HSTS 설정
HSTS(HTTP Strict Transport Security) 설정을 통해 HTTP로 연결 시 강제 HTTPS를 적용할 수 있습니다. HTTPS로만 서비스를 제공하고자 하는 경우에만 설정하시기 바랍니다. 설정된 max-age 만큼 강제 HTTPS가 적용됩니다.
add_header Strict-Transport-Security "max-age=31536000;" always;