假设已经有证书文件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,不知为何。
有错误和疑问请不吝指出。谢谢。