Ubuntu Apache2 下配置 SSL 證書及全域性 HTTPS 強制跳轉

weixin_34041003發表於2016-02-25

假設已經有證書檔案apache.crt 和私匙apache.key
/etc/apache2/ 下新建一個ssl 資料夾,把這兩個檔案扔進去。

配置SSL證書

開啟 /etc/apache2/sites-available/default-ssl.conf
ServerAdmin下另起一行加上ServerName 你的域名:443
找到SSLEngine,SSLCertificateFile,SSLCertificateKeyFile並修改成以下內容

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/apache.crt

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

SSL證書配置完畢,儲存退出。

配置 HTTPS 強制跳轉

開啟 /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80></VirtualHost>標籤內隨便一個地方加入以下三行

RewriteEngine on
RewriteCond  %{HTTPS} !=on
RewriteRule  ^(.*) https://%{SERVER_NAME}$1 [L,R]

強制跳轉https配置完畢,儲存退出。

使配置生效

啟動 rewrite mod
sudo a2enmod rewrite
重啟 apache
sudo etc/init.d/apache2 restart
配置結束。不出意外配置應該已經生效。

其他

我在網上查到的其他資料,不少都有再設定 AllowOverride 的 None 改為ALL 這一步,然而我沒找到這個檔案,略過這一步依然可以強制全域性跳轉 HTTPS,不知為何。
有錯誤和疑問請不吝指出。謝謝。

相關文章