아파치 모듈중 mod_rewrite 를 사용하면 http 로 연결한 client 를 https 로 전환 가능하다.
Ubuntu 사용자는 다음 명령어로 mod_rewrite 모듈을 활성화한다.
sudo a2enmod rewrite
BASH
httpd.conf 의 Vritual host에 다음 내용 추가하고 아파치 웹서버 재구동하면 반영됨
httpd.conf 설정
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
CODE
실제 사용은 아래와 같이 HTTP 기반의 가상 호스트에 설정해 주면 된다.
<VirtualHost *:80>
DocumentRoot "/www/example1"
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot "/var/www/html"
SSLEngine on
# Dropping SSLv2, SSLv3, ref: POODLE
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
#SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
ErrorLog logs/example.com-ssl-error_log
TransferLog logs/example.com-ssl-access_log
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
CODE
같이 보기