SSL证书申请,配置Nginx环境支持HTTPS访问

综合技术 简书

关键词

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链接可访问即可,不需要全站均使用HTTPS,所以配置到这里就够了。若还需配置全站必须使用HTTPS,网上有很多教程可供参考。

测试

http://www.laotie.tv/

https://www.laotie.tv/

简书稿源:简书 (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合技术 » SSL证书申请,配置Nginx环境支持HTTPS访问

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录