====== 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]