准备

部署SSL之前,确定之前的http站可以访问

介绍

本文主要说明一些部署SSL方面的细节,还有部署SSL过程中遇到的问题,打开浏览器提示“不安全”不出现“小绿锁”的问题
关于证书的选择,无论用哪种证书部署成功都显示的是“小绿锁”,证书有很多种:Let's Encrypt,StartSSL,Comodo PositiveSSL,RapidSSL,沃通(Wosign)免费DV证书 等

目前博客圈好像广泛使用Let's Encrypt 免费SSL证书,但本站此次使用腾讯云颁发的SSL证书

关于Let's Encrypt免费SSL证书

Let's Encrypt 作为一个公共且免费 SSL 的项目逐渐被广大用户传播和使用,是由 Mozilla、Cisco、Akamai、IdenTrust、EFF 等组织人员发起,主要的目的也是为了推进网站从 HTTP 向 HTTPS 过度的进程,目前已经有越来越多的商家加入和赞助支持。
Let's Encrypt 免费 SSL 证书的出现,也会对传统提供付费 SSL 证书服务的商家有不小的打击。到目前为止,Let's Encrypt 获得 IdenTrust 交叉签名,这就是说可以应用且支持包括 FireFox、Chrome 在内的主流浏览器的兼容和支持,虽然目前是公测阶段,但是也有不少用户在自有网站项目中正式使用起来。
Let's Encrypt 的最大贡献是它的 ACME 协议,第一份全自动服务器身份验证协议,以及配套的基础设施和客户端。这是为了解决一直以来 HTTPS TLS X.509 PKI 信任模型,即证书权威(Certificate Authority, CA)模型缺陷的一个起步。
在客户端-服务器数据传输中,公私钥加密使得公钥可以明文传输而依然保密数据,但公钥本身是否属于服务器,或公钥与服务器是否同属一个身份,是无法简单验证的。证书权威模型通过引入事先信任的第三方,由第三方去验证这一点,并通过在服务器公钥上签名的方式来认证服务器。第三方的公钥则在事先就约定并离线准备好,以备访问时验证签名之用。这个第三方就称为证书权威,简称 CA。相应的,CA 验证过的公钥被称为证书。
问题是如果服务器私钥泄露,CA 无法离线使对应的证书无效化,只能另外发布无效记录供客户端查询。也就是说,在私钥泄露到 CA 发布无效记录的窗口内,中间人可以肆意监控服-客之间的传输。如果中间人设法屏蔽了客户端对无效记录的访问,那么直到证书过期,中间人都可以进行监控。而当前 CA 验证和签发证书大多手动,证书有效期往往在一年到三年。
Let's Encrypt 签发的证书有效期只有90天,甚至希望缩短到60天。有效期越短,泄密后可供监控的窗口就越短。为了支撑这么短的有效期,就必须自动化验证和签发。因为自动化了,长远而言,维护反而比手动申请再安装要简单。
证书的有效期,也挺合理的。Let's Encrypt 的证书是自动签发的,对 Let's Encrypt 的目标用户(个人网站、小网站)来说,90天已经是一个很长的时间了。特别是个人网站,域名所有权的变动是非常快的。可能前几天域名还属于张三,后几天就属于李四了。因此自动签发一个长有效期的证书是很容易产生问题的。如果证书的有效期是两年,那么经常交易域名的人就可以长时间持有已经不属于他们的域名的证书。并且这种持有不受证书吊销列表的控制,因为签发的时候,所有权是没有问题的,即使后来所有权变更了,Let's Encrypt 也不会知道。所以设的有效期短一点,可以减少这个问题的影响。然后是易用性,现在已经有不少的 Let's Encrypt 自动续期脚本了,配好后就不用管了,非常方便。
总之,推荐站长和服务器平台用 Let's Encrypt 向访客提供加密连接。这是域名认证未来的发展方向。

证书安装

关于证书安装,本站博客使用腾讯云SSL。安装方法,选择傻瓜式安装 宝塔面板 里面的一键部署

宝塔部署SSL证书参考https://www.bt.cn/bbs/thread-704-1-1.html

省去了自己用VPS去生成证书

生成证书以后,也不用自己去配置nginx了

然后,打开博客后台,设置站点地址为https://你的域名

去访问https://域名 即可

进去之后发现不出现“小绿锁”,通过网络日志发现,网站里面加载了很多http协议的JS,图片等

用Google浏览器按F12看看加载了哪些,然后替换掉即可

至于文章里面的http图片资源 也可以选择一些免费图床,这样就可以避免不出现“小绿锁”的情况
比如https://blog.97xhb.com/tu/

网站上所有http都要替换成https

这里也推荐一个[插件] Typecho全站HTTPS URL替换利器
https://www.typechodev.com/plugins/%E5%85%B6%E4%BB%96%E6%8F%92%E4%BB%B6/typecho-url-replace.html

全部部署好之后是这样子,会在网址前面出现一个' 小锁 '

到现在SSL 部署算是完美的完成了,小绿锁也都出现了,如果还没有成功,那么记得在“源代码”里搜索"http:"来排查,有些地方可能是需要你去修改主题源代码的,其实在部署 SSL 前最好是向主题作者了解好主题支持 https 的情况是最高效的。

关于搜索引擎

目前来看,谷歌对 HTTPS 是青睐有加,谷歌自己的智能判断很给力,只要启用了 SSL 并且部署成功,谷歌就会自动替换收录网址的前缀为 HTTPS,一般响应时间我感觉也就是 24 个小时。国内搜索引擎里,百度最近对 HTTPS 的支持也开始加快了识别和修正已收录链接的速度。至于说 HTTPS 后,搜索引擎的“权重”、“关键词排名”、“自然搜索流量”这些的效果,目前时间周期太短,看不出来具体的效果变化。从 HTTPS 自身特点来看,未来搜索引擎对其支持和关注会越来越大,从理论上来说 HTTPS 站点可以减少搜索引擎不少的判断分析处理,HTTPS 优于 HTTP 收录。

可参考文章https://liufw.cn/240.html

到此全部完成。

2019/03/26