TEL:
SSL证书申请,配置Nginx环境支持HTTPS访问
| 发布时间: 2018-05-21 21:27:55 | 1651 次浏览

关键词

SSL  HTTPS Nginx  AMH面板

背景

在建站过程中遇到如下需求:需要网站支持HTTPS访问,因此需要申请SSL证书,并且安装使用

为什么需要HTTPS?

简单来讲,HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。相对来说安全性较低。常见的运营商劫持就是利用了HTTP协议传输中的不足。

HTTPS则拥有更高的安全性,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。之前HTTPS在金融购物网站使用比较多,但是现在随着用户愈发重视网络安全,很多平台开始转向使用HTTPS。目前Google,Apple,Facebook等已经完全支持HTTPS,甚至支持HTTP 2.0。

如何申请SSL证书?

国内很多渠道可以获取免费的SSL证书,比较主流的有腾讯云,阿里云,BAE(百度开放云),我因为域名和服务器大多都在阿里云(且比较穷),所以选择了阿里云的免费SSL证书服务。

申请地址:点我

按照截图对应样式选择免费型

每个阿里云账号可以申请可以申请10个免费SSL证书,每个证书对应一个域名。

申请完成后填写相关信息,一般十分钟左右即可完整证书签发,注意填写信息的时候尽量填写真实信息,否则可能会影响审核。

已签发证书

证书签发之后,点击相应证书后的“下载”,即可进入下载页,选择对应主机环境,下载所需的证书文件,还需安装,安装完成即可实现HTTPS访问。

环境配置说明:

因为当时自己安装Nginx+PHP+MySQL环境的时候数据库密码遇到一些问题,为了方便,直接使用了AMH面板。

环境如下:Nginx+PHP+MySQL,配合AMH面板

证书安装

阿里云官方提供了各环境配置下的证书安装说明,上传证书文件至Nginx安装文件根目录,然后修改nginx.conf配置文件即可。

一般Nginx配置文件位于usr/local/nginx/conf文件夹下,但是因为我是用的是amh面板,nginx.conf文件include了单独的主机配置文件

nginx.conf文件

比如我的是/home/wwwroot/lnmp_movie/vhost/*.conf,直接进入这个目录修改即可。

官方提供的修改配置如下:

红框中的对应内容需要修改为你网站的根目录

ssl_certificate和ssl_certificate_key对应的地址是可以更换的,示具体上传的地址而定。

使用阿里云官方提供的配置,修改完配置文件,重启Nginx之后,使用HTTPS链接已经可以访问,但是如果不使用HTTPS而使用HTTP访问,出现了一个报错。

The plain HTTP request was sent to HTTPS port

网上查找之后有很多种解决办法,其中几种试了之后并不能解决问题,后来我试着修改了一下ssl on代码,配置改成如下,重启Nginx之后HTTP访问已经不再报错(具体原理我也讲不清

整体修改后的配置如下,比较重要的地方已经使用红框标注,其他配置文件与ssl无关。

修改后的配置文件


作者:铁皮鸽
链接:https://www.jianshu.com/p/b4a0d62ecdb7
來源:简书