====== Apache2配置https ======
===== 准备https证书 =====
- 自己生成
- 购买
- 从阿里云免费领取一个:我是采用这种
阿里云证书:214585382500153.key,public.pem
参考链接:https://ninghao.net/blog/4449
===== 开启SSL模块 =====
sudo a2enmod ssl
===== 启用SSL站点 =====
sudo a2ensite default-ssl
===== 加入监听端口 =====
sudo vim /etc/apache2/ports.conf
######
Listen 80 443 //编辑Apache端口配置,加入443端口(HTTPS采用的443端口传输数据)
######
===== 配置SSL证书 =====
在ServerAdmin下另起一行加上ServerName 你的域名:443,
并找到SSLEngine,SSLCertificateFile,SSLCertificateKeyFile并修改成如下:
sudo vim /etc/apache2/sites-available/default-ssl.conf
ServerAdmin webmaster@localhost
ServerName 127.0.1.1:443
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/cert/public.pem
SSLCertificateKeyFile /etc/apache2/cert/214585382500153.key
===== 配置 HTTPS 强制跳转 =====
sudo vim /etc/apache2/sites-available/000-default.conf
在标签内随便一个地方加入以下三行,如在最后加入
...
...
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
===== 使配置生效 =====
启动 rewrite mod
sudo a2enmod rewrite
重启 apache
sudo /etc/init.d/apache2 restart
配置结束。不出意外配置应该已经生效。
===== 访问测试 =====
访问http跳转到https
===== 跳转规则配置 =====
配置http不自动跳转到https,修改文件
/etc/apache2/sites-available/000-default.conf
RewriteEngine on
#不强制http转https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]