加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

通过SSL证书在Nginx中配置Https构建加密通道保证数据传输安全

发布时间:2019-09-30 07:27:23 所属栏目:策划 来源:互联网蚂蚁哥
导读:副标题#e# 1、先说说Nginx-HTTPS加密技术 超文本传输安全协议(HTTPS)是以安全为目标的HTTP通道,简单来说就是HTTP安全版。https由两个部分组成:HTTP+SSL/TLS,在http基础上加上了一层加密信息模块,服务端和客户端的信息插损胡都会通过TLS进行加密,传输的

server { listen 443; server_name www.iivey.com; index index.php index.html; root /data/webhtdocs/iivey; ssl on; ssl_certificate iivey.crt; ssl_certificate_key iivey.key; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-Xss-Protection 1; }

简单介绍下上面每个配置选项的含义:

ssl on:表示启用SSL功能。

ssl_certificate:用来指定CRT文件的路径,可以是相对路径,也可以是绝对路径,本例是相对路径,iivey.crt文件放在和nginx.conf同级目录下。

ssl_certificate_key:用来指定秘钥文件的路径,可以是相对路径,也可以是绝对路径,本例是相对路径,iivey.key文件放在和nginx.conf同级目录下。

ssl_prefer_server_ciphers on:设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件。

ssl_protocols:此指令用于启动特定的加密协议,这里设置为“TLSv1 TLSv1.1 TLSv1.2”,TLSv1.1与TLSv1.2要确保openssl版本大于等于openssl1.0.1 ,SSLv3也可以使用,但是有不少被攻击的漏洞,所以现在很少使用了。

ssl_ciphers:选择加密套件和加密算法,不同的浏览器所支持的套件和顺序可能会有不同。这里选择默认即可。

add_header X-Frame-Options DENY:这是个增强安全性的选项,表示减少点击劫持。

add_header X-Content-Type-Options nosniff:同样是增强安全性的选项,表示禁止服务器自动解析资源类型。

add_header X-Xss-Protection 1:同样是增强安全性的选项,表示防止XSS攻击。

5、验证HTTPS功能

Nginx的https配置完成后,需要测试下配置是否正常,这里提供两种方式,第一种方式是直接通过浏览器访问https服务,这里使用火狐浏览器进行测试,如果https配置正常的话,应该会直接打开页面,而不会出现如下界面:

通过SSL证书在Nginx中配置https构建加密通道保证数据传输安全

出现这个界面,说明https没有配置成功,需要检查https配置是否正确。而在打开https页面后,可能还会出现一种情况,如下图所示:

通过SSL证书在Nginx中配置https构建加密通道保证数据传输安全

这个现象是能够打开https界面,但是浏览器地址栏左边的小锁是灰色,并且有个黄色的感叹号,这说明这个网站的页面中可能引用了第三方网站的图片、js、css等资源文件,https认为页面有引用第三方网站资源的情况是不安全的,所以才出现了警告提示。解决这个问题很简单,将页面上所有引用第三方网站的资源文件下载到本地,然后通过本地路径进行引用即可。

修改所有资源文件到本地服务器后,再次通过https方式进行访问,浏览器地址栏左边的小锁自动变成绿色,并且感叹号消失,如下图所示:

通过SSL证书在Nginx中配置https构建加密通道保证数据传输安全

至此,nginx下配置https服务已经正常运行。

在浏览器下可以查看证书信息(证书厂商、证书机构、证书有效期等),点击浏览器地址栏的绿锁,选择查看证书,即可查看证书详细信息,如下图所示:

通过SSL证书在Nginx中配置https构建加密通道保证数据传输安全

验证SSL证书状态还有另外一个方法,那就是通过提供的在线网站进行验证,读者可以通过https://myssl.com/网站或https://www.ssllabs.com/ssltest/网站进行在线测试,这些网站可以更详细的测试SSL证书的状态、安全性、兼容性等各方面的状态。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读