访问本站的筒子们有没有发现地址栏上优雅动人的绿色小锁呢(昨天还是黄色小三角形)?:D 现在您在本站访问的全部内容都通过HTTPS传输了哦~通过http协议访问也会被直接跳转到https(除网络爬虫和IE 9以下用户)。
想知道怎么做到的吗?嗯,本文就是来分享一下的。大体上都可以照着底下给出的参考文章来操作,我在这里补充一些细节。
关于StartSSL
在StartSSL注册的时候个人信息(包括地址、电话等)必须是个人信息,不能是公司、机构等地址(免费套餐限定个人使用)。建议在VPS上生成私钥crt和那个包含了信息的csr文件,然后直接让StartSSL生成公钥、Chainfile(sub.class1.server.ca.pem),这样速度会快一点(我这里访问StartSSL速度比较慢)。
挫人如我,忘记在Apache的ssl.conf里设置SSLCertificateChainFile了,所以之前Android设备访问会提示证书有问题,现在已经搞好了。SSLCertificateChainFile就是最后从StartSSL那里下载得到的sub.class1.server.ca.pem!
使用VirtualHost功能需注意的事情
StartSSL只签了顶级域名和一个子域名,因此在Apache中配置使用了VirtualHost分管不同子域名时一定要注意ssl.conf配置写好ServerName和ServerAlias,不要给没签名的域名用SSL证书。
批量替换图片链接
WordPress中把站点地址什么的都改成https开头,这个时候访问还是会有个黄色小三角形,因为图片资源的链接还是旧的(http协议)。用协议级路径解决是最佳之策,即把前面的http和https头都去掉,直接用两个斜线//开始。下面讲一下命令行下操作mysql把图片链接批量替换。
USE wordpress; UPDATE wp_posts SET post_content = replace(post_content, 'http://www.librehat.com', '//www.librehat.com');
这样一来就把判断协议的任务交给了浏览器(不用担心支持问题,IE6都支持协议级路径访问)。上述命令执行完毕后图片的链接就会自动跟着当前访问协议走了(当前是http://,图片就是http://,当前是https://,图片就是https://)。
另外就是https的跳转,在.htaccess里(
RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_USER_AGENT} !(baiduspider|soso|bing|sogou|yahoo|sohu-search|yodao|robozilla|msnbot|feedburner) [NC,OR] RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC] RewriteRule ^.*$ https://www.librehat.com%{REQUEST_URI} [L,R]
记得把https://www.librehat.com替换成你自己的域名。另MSIE这里我是默认IE8及以下版本的不跳转到https,你也可以设置成别的IE版本(因为IE9之前的版本提示那个含有不安全内容的框非常烦人)。
插句题外话,我把这个TwentyThirteen的style.css改掉了,基本参考fedoraproject.org的配色方案改来,蓝色系不要养眼太多!
7 responses to “本WordPress博客内容现已完全沉浸在SSL保护之中”
我的不行啊…
什么不行?
ssl挺好
StartSSL 确实是中小站点领证的福音啊 ……
嗯,要不是StartSSL估计很多站点都无福消受https
报告个 Bug ,在安卓手机上访问经常会报此安全凭证有问题,是否继续……
Bug已经修复……我以为不用指定SSLCertificateChainFile的,结果不指定的话Android就报错。