웹서버 SSL 설정을 하려면,
. 웹서버 종류에 따라 설정이 다르고
. 사용자의 브라우저, OS, Java 버전 등에 따른 차이
. OpenSSL 버전에 따른 차이,
. 보안 정책 따른 추가설정.. HSTS(Http Strict Transport Security) 적용 등
여러가지 고려사항이 많다. .
이 고민을 덜어주는 Generate Mozilla Security Recommended Web Server Configuration Files 라는 사이트를 이용해보자. ;-)
해당 사이트에 접속하여
웹서버, 설정 레벨, 서버, OpenSSL 버전을 입력하면, 그에 맞는 설정을 만들어 줍니다.
위와 같이 입력하면, 아래와 같이 설정이 출력됩니다.
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /path/to/signed_certificate_followed_by_intermediate_certs
SSLCertificateKeyFile /path/to/private/key
SSLCACertificateFile /path/to/all_ca_certs
# HSTS (mod_headers is required) (15768000 seconds = 6 months)
Header always set Strict-Transport-Security "max-age=15768000"
...
</VirtualHost>
# intermediate configuration, tweak to your needs
SSLProtocol all -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/ocsp(128000)
VirtualHost 디렉티브 내의 설정은 그대로 VirtualHost 내부에
바깥은 설정은 VirtualHost 디렉티브 밖에 복사하고, 나머지 설정을 반영하면 끝!