赵岩的博客全站HTTPS改造

互联网安全和个人隐私越来越被人们关注,不仅仅是电商等交易网站都实现了全站https,现在微博、百度以及大大小小的博客都实现了全站https。如果你的网站不是https的,火狐、chrome、IE浏览器都会在地址栏前方提示用户 你当前访问的网站是不安全的。

为了跟风,赵岩的博客今天起全站使用https。

为了实现全站HTTPS。我主要做了以下工作:

第一、HTTPS证书

https使用SSL传输协议,SSL之所以安全,是因为加密传输的。初始公钥由服务器传递给浏览器,为了保证公钥安全的传输到浏览器,并被浏览器认可,我们需要一个由第三方权威机构签名的证书。详细参考《HTTPS到底是如何保证通信安全的

普通的单域名证书一年需要1000多元,我们自然不会去花这个钱的。阿里云代理的赛门铁克提供个人免费域名证书。可以直接申请。阿里证书申请  申请的时候选择“Symantec ”、“免费型”、“一个域名”。阿里云会要求DNS或者文件验证,证明你是域名的拥有者。整个申请过程10几分钟可完成。

第二、升级Nginx

Nginx需要使用–with-http_ssl_module参数编译,确保支持https。为此我趁机会升级了下Nginx的版本到最新版本。

把你的证书pem文件和私钥key文件上传到服务器。
配置nginx.conf,监听443端口并加载证书。
原来监听的80端口,301转向443端口

server {
listen       80;
server_name  zhaoyanblog.com;
include black_list;
rewrite ^(.*) https://$server_name$1 permanent;
}

server {
listen       443;
server_name  zhaoyanblog.com;
ssl on;
ssl_certificate   cert/xxx.pem;
ssl_certificate_key  cert/xxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

......

第三、全站HTTPS

1、检查网站内有没有引用了别的网站的js。需要切成https地址。或者根据document.location.protocol自适应当前的访问协议。

比如:微博、百度统计、百度站长、百度联盟广告等等组件。

http://widget.weibo.com/weiboshow/index.php 改成 https://widget.weibo.com/weiboshow/index.php

2、检查是否直接使用了本站的http地址。改成相对路径。虽然已经配置了80端口301跳转。这样改会少一步对服务器的访问。

比如:http://zhaoyanblog.com/wp-content/uploads/2017/04/zhaoyanblog_2017-04-17_14-50-20.jpg
改成
/wp-content/uploads/2017/04/zhaoyanblog_2017-04-17_14-50-20.jpg

可以通过查看浏览器的调试信息,知道哪些访问的资源仍然是http的。

第四、通知百度进行HTTPS验证

在验证好全站已经使用https,并且访问http也可以301跳转到https。我们需要通知百度等搜索引擎进行https验证。因为搜索引擎在之前都是缓存我们的http地址。需要告知他我们切到https。避免导致收录的页面丢失。

直接登录百度站长,里面有个https验证页面,点击验证即可。

至此赵岩的博客已经实现全站https

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *