一切福田,不離方寸,從心而覓,感無不通。

Centos7下nginx配置https

Centos7下nginx配置https

在互联网信息安全日益重要的今天,https协议几乎成了标配,部分浏览器如果遇到非https的服务器会拒绝访问,有的平台也要求app的服务器要用https协议(如苹果、微信小程序)。

下面是个人配置https的笔记,先完整记录下来,不然到时遇到问题又各种百度。

一、步骤1 配置nginx

假如你已经申请到了https证书,而且有nginx下的版本,通常是两个文件,一个是 .key 后缀的文件,为证书的私钥,另一个是 .crt 后缀的文件,为证书的公钥。

nginx.conf 配置如下:

 

  • 把#1所在行的 www.sever.com 改成你的域名(注意:这个域名是你申请证书时用的域名)。
  • 把#2所在行的 ssl/bundle.crt* 改成你实际文件的路径,如果是相对路径,那么是相对于nginxconf目录的路径。
  • 把#3所在行的 ssl/cert.key* 改成你实际文件的路径,如果是相对路径,那么是相对于nginxconf目录的路径。

如果要让用户用http协议访问时自动跳转https,则还需加上如下配置:

 

就是一个url重写而已。

注意要把 www.server.com 改成你实际的主机名。

配置完后,用如下命令

 

测试下配置文件有没有错误。
如果没有错误,用如下命令

 

重启nginx,然后用浏览器测试下用https协议能否正常访问服务器。

如果不能访问,请确认下证书路径有没有问题,如果没有,请看下面的 步骤2

二、步骤2 开启服务器的防火墙

需要该步骤是因为服务器的防火墙没有开通443端口。

centos7 下用的防火墙是firewalld,配置防火墙用命令firewall-cmd

  1. 开通443端口

 

  1. 确认是否开通

 

如果可以看到443/tcp字样就说明开通了

  1. 重新加载下防火墙配置

 

执行完该步骤,大多数服务器应该可以正常用https协议访问。

如果不能,如果你用的是阿里云服务器,请看步骤3。如果是其它服务器,请自行百度。

步骤3 在安全组规则开通443端口

需要该步骤的原因是因为云服务器的安全组规则上没有开通相关的端口。

 

 

做完步骤3,应该可以用https了。如果还不能,提交工单问技术人员吧。或者再检查下步骤1步骤2有没有做到位。

 

from:https://blog.csdn.net/chunyuan314/article/details/77369110