Skip to main content
 首页 » 网络技术

nginx环境下安装SSL安全证书,部署https教程

2016年04月10日124

如今在淘宝、云服务网站登录和访问的时候,会看到地址栏的URL与我们普通的网站访问稍微有些不同,尤其是在URL地址栏最前端会看到有绿色甚至其他颜色的标示,这就是我们所谓称作的HTTPS地址,采用了SSL安全证书加密。在一定的情况下加密用户信息的传输。

2014年的时候,谷歌宣布对于带有SSL证书的网站给予一定的权重增加,但是在国内的搜索引擎还没有有这样的说法,但是我们在访问百度的时候也有看到官方网站也启用HTTPS地址。认为无论是否对于网站起到何种的权重加分,但是如果我们的网站是会员互动形式的,尤其是针对个人信息的传输,这类网站还是有必要添加SSL证书的。

关于SSL证书的获取,如果我们是用来学习可以使用STARTSSL或者沃通免费SSL的申请,可以到"免费沃通数字证书SSL申请"和"StartSSL申请"申请免费SSL部署学习,如果我们需要正规的网站使用,建议还是购买付费的SSL证书。

在这篇文章中,我们会在nginx环境下安装SSL以及部署我们的站点是通过HTTPS访问的。

第一步、部署HTTPS基础工作准备

A - 我们需要在自己已有的云服务器环境中进行搭建。

B - 这里用沃通免费SSL作为演示的,所以我已经申请好免费的SSL,且解压证书文件我们可以看到里面有各种环境的。

沃通免费SSL

因为这里我们是用nginx WEB环境的,所以我们需要解压FOR nginx.ZIP文件包,然后看到一个CRT一个KEY文件。

第二步、上传和部署SSL证书

A - 把上面的一个CRT一个KEY文件上传到VPS ROOT目录中,然后对应修改成SSL.CRT和SSL.KEY文件名,或者我们用作其他命令都可以。

B - 解密私钥和设置权限

openssl rsa -in ssl.key -out /root/ssl.key chmod 600 /root/ssl.key

登录SSH,执行上述两行脚本,解密私钥和授权。

第三步、在NGINX环境部署站点SSL设置

我们需要在已有的nginx添加了站点,然后在站点对应的CONF文件设置。

在"/usr/local/nginx/conf/vhost/"目录文件中,找到对应站点的conf文件,然后修改设置如下

server { listen 80; listen 443 ssl; #listen [::]:80; ssl on; ssl_certificate /root/ssl.crt; ssl_certificate_key /root/ssl.key; server_name xiangta.cc www.xiangta.cc;

上面的红色标注部分是我添加的,对应路径我们要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。

最后,我们重启nginx,可以看到SSL证书生效,且HTTPS可以访问站点。

ssl

如果我们需要强制使用HTTPS网址访问,那我们就需要取掉 listen 80;脚本。或者在网站模板中添加一下js,就算访问http也会强制跳转https,JavaScript实现强制重定向至HTTPS页面相关文章

<script type="text/javascript">var targetProtocol = "https:"; if (window.location.protocol != targetProtocol) window.location.href = targetProtocol + window.location.href.substring(window.location.protocol.length); </script>

总结,通过上面的步骤,我们基本上可以完成部署HTTPS站点URL,对于有需要优化环境提高效率的。