注册 登陆

    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


    配置https,有总结为xmind,需要的小伙伴,可以下方留言 ,会发送邮件附件 ^-^。

关键字词: nginx配置https

0




时间:2020-03-02 23:45:15 王者:
怎么有裂图,看不了