11、使用和配置更安全的https协议

作者: 伯纳乌的追风少年 | 来源:发表于2017-09-20 19:32 被阅读0次

一、选购和申请ssl证书的一些建议

谷歌从2017年开始chrome浏览器会把采用http协议的网站标记为不安全的网站,苹果也是从2017年开始规定所有的应用都必须采用https的加密连接。在国内,热火朝天的微信小程序也规定必须使用https协议的接入域名。特别是苹果商店的变化会影响到很多很多的开发者,现在默认的配置都是采用https协议连接的。从安全层面看的话https协议显然是比http协议有很多的优势。我们也应该紧跟潮流的趋势,在app中采用证书的验证,通过启用https协议来保护所访问到的资源。如果说我们自己的站点没有使用https协议的话,在大陆的场景下,容易被电信联通劫持,注入恶意的话费充值广告,所以最好还是让我们的网站强制使用https协议,起码可以避免isp的劫持。
关于ssl的原理就不多介绍了,接下来就介绍一下如何申请一个ssl证书。
常见的ssl证书类型有:dv、ov、ev,其安全等级为:ev>ov>dv。
常用的ssl厂商有:
1、Symantec
2、GeoTrust
3、trustasia https://www.trustasia.com/


二、云平台申请免费证书及Nginx配置

可以申请免费ssl证书的平台有很多,我们主要推荐的有腾讯云https://www.qcloud.com/、又拍云https://www.upyun.com、七牛https://www.qiniu.com、阿里云。这四个平台对应着其背后的四个厂商,我们主要考虑厂商的实力和做产品的持续度。
我们以腾讯云为例介绍一下如何申请ssl证书
1、登录腾讯云点击控制台:


2、在控制台中点击“云产品”下的“ssl证书管理”

3、进入“证书列表”页面后,点击“申请证书”

4、如果没有实名认证的话会要求先进行实名认证

5、实名认证通过后再进入“证书列表页”中点击“申请证书”,选择“亚洲诚信”的免费版dv证书,点确定。



6、证书申请页面填入相应信息,点击下一步



7、在下一步中选择“手动dns验证”,点击“确认申请”

8、在dnspod中更改主机记录和记录值为腾讯云提供的值


更改前
更改后

此时证书列表中该证书状态为“已颁发”。


9、我们把证书下载下来,解压缩一下,其中包括了Apache、IIS、Nginx、Tomcat四种服务器所对应的key,这个key我们要上传到服务器上去。


10、把下载下来的证书上传到服务器上:




我们在服务器上可以看到,这两个文件已经上传成功


我们把ssl文件放在/www/目录下:


11、nginx证书部署
我们可以参考nginx证书安装指引文档:https://www.qcloud.com/document/product/400/4143#2.-nginx-.E8.AF.81.E4.B9.A6.E9.83.A8.E7.BD.B2
我们复制选中的部分:


在服务器中更改nginx配置文件/etc/nginx/conf.d/blog-com-8082.conf为:
upstream blog {
  server 127.0.0.1:8082;
}

server {
  listen 80;
  server_name blog.xiaoxiekeke.com;
  #rewrite ^(.*) https://$host$1 permanent;
  return 301 https://blog.xiaoxiekeke.com$request_uri;
  #如果是http协议的话重定向到https地址
}
server {

  listen 443;#ssl证书访问的端口号
  server_name blog.xiaoxiekeke.com; #填写绑定证书的域名
  ssl on;
  ssl_certificate /www/ssl/1_blog.xiaoxiekeke.com_bundle.crt;
  ssl_certificate_key /www/ssl/2_blog.xiaoxiekeke.com.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
  ssl_prefer_server_ciphers on;

  if ($ssl_protocol = "") {
        rewrite ^(.*) https://$host$1 permanent;
  }


  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_pass http://blog;
    proxy_redirect off;
  }
}
~    

配置好后sudo nginx -t检查一下


重启nginx服务:

12、测试效果:
此时我们测试一下在浏览器中输入:http://blog.xiaoxiekeke.com/posts 会直接访问到https://blog.xiaoxiekeke.com/posts 安全域名下:


总结

经过了将近一个月的学习和摸索,慕课网scott老师的实战课程“全栈最后一公里”终于跟着学完了。这套课程真是满满的干货,学到了很多知识,物超所值。有兴趣的同学也可以购买下来学习,相信曾经付出的学习成本,总有一天时间会数百倍的回报给你。

在scott老师的指导下,我终于通过自己的努力把成功的把项目部署上线了,也了解了很多服务器安全配置相关的知识,算是刚入了全栈的门,感觉自己距离真正的全栈还有好远的距离。不过没关系,只要坚持下来,持续不断的学习,就会不断的进步,总有一天会心如所愿,成长成为一名真正合格的全栈工程师,我期待着这一天的到来。

在学习的过程中如果遇到任何问题都可以来简书中问我,如果有什么心得体会也可以来简书和我交流,我期待着在学习的过程中跟大家共勉!

相关文章

网友评论

    本文标题:11、使用和配置更安全的https协议

    本文链接:https://www.haomeiwen.com/subject/smevjxtx.html