关于绑定域名后通过阿里云SSL证书进行安全认证的方法
在购买域名并将其解析绑定到Github Page个人网站上后,网站的性质由安全变为了不安全。
原因并在于以前网站的所谓域名其实是对一个仓库的访问,但是现在通过Github Page的修改域名解析的方式。来定义了一个自己的域名,而这个域名是没有SSL安全证书的。
所以会在一些浏览器中显示出不安全的字样,甚至谷歌的chrome浏览器直接中断了连接。
这无疑给博客留下了不好的开场,因此需要绑定一张SSL安全证书来证明自己的博客是安全的。
SSL简介
SSL是一种安全套接层协议,是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
SSL协议的三个特性在一个:
① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;
② 鉴别:可选的客户端认证,和强制的服务器端认证;
③ 完整性:传送的消息包括消息完整性检查(使用MAC)。
SSL的位置
SSL介于应用层和TCP层之间,应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。
获得SSL证书
SSL证书一般由权威公司进行颁发。如果是自己颁发的SSL证书算法不够强力,甚至还会被浏览器认为是更高的风险级别。
所以我们需要去权威公司中获得一张证明自己网站安全的证书,加密自己的网站。
目前的权威公司有许多,但是能提供免费证书的却寥寥无几。
所以最好选择DigiCert 免费版 SSL证书,有效期一年。
阿里云已经集成这个服务,会更加方便快捷,所以推荐注册域名时使用阿里云。
步骤
登陆阿里云后,转到数字证书管理服务。
选择SSL在这里证书,再选择免费证书。
这是购买了免费证书后的界面,在没有购买之前,「创建证书」按钮将会变为「免费证书」的按钮。
选择购买20张,其余的数量则不能免费。
选择申请证书,按照提示填写信息。
如果在阿里云购买的域名,在验证信息环节会自动添加DNS解析,更为方便与快捷。
验证信息完后申请的速度非常快,一般不到一分钟便可有邮件通知,表示申请完成。
便会显示一张证书,表示已经被认可。
部署
获得了证书后便需要将它部署到自己的网站上。
此时不用选择阿里云内置的部署操作,此部署操作是针对于服务器而言的,对Github page页面操作是无效的。
所以需要转到Github并登录账号,再选择对应的个人博客仓库的Page页面。
将页面滑到最底下,可看到如图所示的页面。
由于此时网站已经通过了证书验证,所以中间的TLS证书请求已经消失了。
如果从未进行证书验证,此时会在强制HTTPS和Custom domain中间显示TLS证书生成。
由于TLS证书和SSL证书是同级的,所以我们选择部署SSL证书。
在此时便有两种方法。
图形化部署
当GitHub验证成功,此网站确实具有SSL证书时,下面的Enforce HTTPS(强制HTTPS)的选项就可选,此时勾选便会使对网站的访问强制使用HTTPS。
输入部署
如果点击后没有效果,那么便需要清空域名,输入https://yourdomain.com
,将域名刷新为只有HTTPS的选项。
之后Github便会自动将https省略。
注意:上述两种方法都需要在强制HTTPS的选项可选的情况下操作,此选项可选表示Github已经发现了SSL证书。
否则,即使重新输入部署也无效,还可能导致跳转错误。
区别
图形化部署是让访问HTTP的请求强制重定向到HTTPS,但如果未能重定向,就会提示不安全。
此方法在直接输入时大多有效,但在重定向时经常不起作用。
而输入部署是删除所有HTTP的网址,只保留HTTPS的网址。
此方法虽然稳妥,但如果有用户输入全部网址而又忘记加上s时,便会无法访问。
所以最为稳妥的办法是进行两个部署。
效果
部署了SSL证书后,网站变为「安全」状态。