2019-10-18 03:07:17nginx配置https
您现在的位置是: 首页 > php > nginx配置https
现在把http变更为https,已经是大势所趋,就比如没有SSL证书,谷歌浏览器首先就是禁止访问网站,跳出来一条红色警告,说你访问的网站不安全,访问者看到这样的警告,可能就退出你的网站,不在访问。
所以小编就去配置了https,可以简单分为几步走:
1.申请免费https证书,及下载
2.nginx根目录配置文件夹存放证书文件
3.修改nginx配置
4.开启443防火墙,注意centOS版本,contos7及contos7以下版本配置防火墙的区别?
5.配置http跳转https,可能遇到nginx多次重定向?
6.配置成功,仍然显示不安全?
接下来详细的说说安装过程中可能遇到的坑吧。
1.我这边申请的是阿里云的免费https证书,申请链接,具体步骤略过,等申请好,可以根据自己需要,下载对应的证书,我这边下载的是nginx版本的证书。
2.下载好https证书压缩包,将证书下载解压,分别为****.pem和****.key(可以修改成你需要的名字),将这两个文件拷贝到你的Nginx根目录下的cert文件夹内(自己创建的,也可以命名成其他名字)。这个路径在配置nginx的时候需要用到。
3.修改nginx配置,部分修改如图
4.修改防火墙规则,增加443端口,这边有点需要注意一下,centos7对防火墙加强了,不再使用原来的iptables,而是firewalld。这边附上centos7及centos7版本以下的防火墙操作命令。
centos7的firewalld操作命令:
```
1.firewalld的基本使用
启动: systemctl start firewalld
查状态:systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
2.配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
3.那怎么开启一个端口呢
添加
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload # 重新载入,更新防火墙规则
firewall-cmd --zone= public --query-port=80/tcp #查看
firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除
```
centos7及centos7版本 :
```
1.开放80,22,8080 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
2.保存
/etc/rc.d/init.d/iptables save
3.查看打开的端口
/etc/init.d/iptables status
4.关闭防火墙
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
```
5.配置完成后,运行nginx -t查看配置是否错误
如果成功,就可以运行nginx -s reload
重新加载配置,去浏览器中输入连接,可以进入https了。
接下来配置http跳转https,这个也是可以在配置nginx的时候,一起配置的。
```
配置文件头部添加
server {
listen 80;
index index.php index.htm index.html;
root /home;
return 301 https://www.xxx.com$request_uri;
}
监听80端口使用301重定向到https安全访问,不要用rewrite重写
```
重启nginx,就可以直接输入域名,跳转https了。
6.当可以访问了,配置成功,360浏览器打开,还没有出现绿色的锁,这边还是有些问题的,自己网站有些链接还是http的,比如图片的路径,css的路劲,js的路劲,这边需要检查都改成https。不过网站中会有http,比如政府类网址域名信息备案系统,你的网站底部添加了备案号并链接了含有http的域名备案提示,但是浏览器仍然提示安全。
补充:当域名由http转成https,在加载http资源的时候,比如加载js,会被block。可以在当前页面header中加上:<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">,意思是自动将http的不安全请求升级为https
关键字词: nginx配置https
上一篇: php static用法详解
下一篇: composer错误_Content-Length mismatch, received 84697 bytes out of the expected..
相关文章
-
暂无