웹서버 SSL 설정을 하려면,  

. 웹서버 종류에 따라 설정이 다르고 

. 사용자의 브라우저, OS, Java 버전 등에 따른 차이

. OpenSSL 버전에 따른 차이, 

. 보안 정책 따른 추가설정..  HSTS(Http Strict Transport Security) 적용 등 

여러가지 고려사항이 많다. . 


이 고민을 덜어주는 Generate Mozilla Security Recommended Web Server Configuration Files  라는 사이트를 이용해보자.  ;-)

해당 사이트에 접속하여

웹서버, 설정 레벨, 서버, OpenSSL 버전을 입력하면, 그에 맞는 설정을 만들어 줍니다.  

 

Mozilla SSL Configuration Generator

 

위와 같이 입력하면, 아래와 같이 설정이 출력됩니다.

 

<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 디렉티브 밖에 복사하고,  나머지 설정을 반영하면 끝!