网站部署HTTPS加密连接协议后通常在刚开始我们会允许用户通过 HTTP或者HTTPS 两个版本进行自由访问。
在测试 HTTPS 版已经没有问题的情况下那么基于安全性考虑已经没有必要再让用户访问HTTP明文连接版本。
因此我们需要将HTTP版的所有访问强制跳转到HTTPS版,同时为安全起见建议顺手部署HSTS 公钥扎钉功能。
Nginx HTTP 301 HTTPS
主要还是修改虚拟主机的配置文件让 Nginx直接rewrite重写,所以首先我们下找到Nginx虚拟主机配置文件。
诸如LNMP集成安装包等的虚拟主机配置文件位于:
/usr/local/nginx/conf/vhost/
为了方便我们直接使用FTP工具将对应的域名配置文件下载到本地再用Notepad++等编辑器打开编辑:
server {
listen 80;
#listen [::]:80;
server_name www.lovestory.hk lovestory.hk;
#将HTTP 301 重定向到 HTTPS 开始
rewrite ^(.*)$ https://$host$1 permanent;
#将HTTP 301 重定向到 HTTPS 结束
index index.html index.htm index.php
}
如果你此前已配置HTTPS还会看到监听443端口的Server,但我们修改只需要将rewrite代码添加至80端口下。
修改好再通过FTP工具将 conf 文件覆盖此前的目录, 然后利用SSH工具连接服务器再重启下Nginx服务即可。
重启命令:service nginx restart
建议顺手部署HSTS公钥扎钉:[指南] 如何配置使用HTTP严格传输安全HSTS (蓝点网搜索关键词 HSTS)