아파치 모듈중 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


같이 보기