通过SSL证书在Nginx中配置Https构建加密通道保证数据传输安全
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配置正常的话,应该会直接打开页面,而不会出现如下界面: ![]() 出现这个界面,说明https没有配置成功,需要检查https配置是否正确。而在打开https页面后,可能还会出现一种情况,如下图所示: ![]() 这个现象是能够打开https界面,但是浏览器地址栏左边的小锁是灰色,并且有个黄色的感叹号,这说明这个网站的页面中可能引用了第三方网站的图片、js、css等资源文件,https认为页面有引用第三方网站资源的情况是不安全的,所以才出现了警告提示。解决这个问题很简单,将页面上所有引用第三方网站的资源文件下载到本地,然后通过本地路径进行引用即可。 修改所有资源文件到本地服务器后,再次通过https方式进行访问,浏览器地址栏左边的小锁自动变成绿色,并且感叹号消失,如下图所示: ![]() 至此,nginx下配置https服务已经正常运行。 在浏览器下可以查看证书信息(证书厂商、证书机构、证书有效期等),点击浏览器地址栏的绿锁,选择查看证书,即可查看证书详细信息,如下图所示: ![]() 验证SSL证书状态还有另外一个方法,那就是通过提供的在线网站进行验证,读者可以通过https://myssl.com/网站或https://www.ssllabs.com/ssltest/网站进行在线测试,这些网站可以更详细的测试SSL证书的状态、安全性、兼容性等各方面的状态。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |