一、选购和申请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老师的指导下,我终于通过自己的努力把成功的把项目部署上线了,也了解了很多服务器安全配置相关的知识,算是刚入了全栈的门,感觉自己距离真正的全栈还有好远的距离。不过没关系,只要坚持下来,持续不断的学习,就会不断的进步,总有一天会心如所愿,成长成为一名真正合格的全栈工程师,我期待着这一天的到来。
在学习的过程中如果遇到任何问题都可以来简书中问我,如果有什么心得体会也可以来简书和我交流,我期待着在学习的过程中跟大家共勉!
网友评论