请注意,其中某些信息可能已经过时!
前言
此篇文章纯属是一次折腾记录,仅供日后备用参考!
我又折腾了一天,我的博客文章终于实现了全站Https。
其实也很简单~
毕竟,现在关于部署SSL证书的工具很多,也有免费的SSL证书一键部署。
最头疼的是Https页面不允许“不安全链接”以及Http链接,所以页面所有的Http链接都要换成Https或者删除,最主要的原因是工作量大,机械繁琐操作很多,导致浪费我大量时间,甚至都有重建的念头。
我不知道折腾了多久,才基本搞定!也不知道是否出现了问题,如有有问题,希望给我大佬给我指出来,在此就非常感谢,在我能力范围内,给予一定量的经济报酬。
现在,我们开始正式进入正题。
申请SSL证书
我使用的是Cloudfare,并且是教育网,访问速度不快,使用请谨慎,但是4G下,速度还是蛮快的...
我考虑过更换SSL证书提供商~
首先注册账号,把域名DNS接管到Cloudfare,在DNS页面必须启用他的CDN,然后在Crypto页面,SSL选择Flexible。
修改链接
登录网站后,基本-站点地址 - 修改成含有Https的主站链接!
这时候你再用Https,打开你的网站试试(有一定的时间过程,不超过24h),一般情况是可以打开,不会提示无效证书,但是浏览器的锁头是灰色的。
更改所有的https链接
- 对于博客页面内的http链接,如图片,MP3地址或者其他,要么使用https镜像存储,要么上传到https空间再使用https地址,要么直接删除
可以使用,Google浏览器的F12检查功能,找出非https的地址。 - 通过数据库进行替换修改:点击SQL输入指令
UPDATE typecho_contents SET TEXT = REPLACE(TEXT,'http://ihewro.com','https://ihewro.com') ;
typecho_contents 是你的数据表名称;
TEXT 是字段名称
两个地址 前面是替换前的地址,后面是替换后的地址
多说的问题
多说头像
- 多说embed.js本地化
https://static.duoshuo.com/embed.js
打开,并保存到本地,命名为“embed.js”。
使用在线代码格式化工具.格式化一下代码,再次保存。
搜索
avatarUrl: function(e) {
return e.avatar_url || rt.data.default_avatar_url
},
修改成
avatarUrl: function(e) {
return e.avatar_url.replace("http:", "https:");
},
全部替换成强制使用https的链接。
多说表情
表情分为两个个方面:表情框里的表情以及评论内容里的表情。
1. 表情框里的表情
对于WordPress表情和新浪微博的表情现在都已经支持https的。直接强制使用https链接即可。
- 打开本地embed.js
搜索var i = 0 === e.indexOf("微博") ? "http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/"
修改成
var i = 0 === e.indexOf("微博") ? "https://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/"
2. 评论内容里的表情
搜索r = s.author;
在下面添加以下代码:
s.message = s.message.replace(/http:\/\/static\.duoshuo\.com\//g, 'https://static.duoshuo.com/');
s.message = s.message.replace("<img src=\"http://img.t.sinajs.cn/", "<img src=\"https://img.t.sinajs.cn/");
第一句话,是把评论内容里面的wordpress表情全部使用https替换(多说本身就是支持的)
第二句话,是把评论内容里面的新浪微博表情强制使用https链接。
多说CSS修改
多说个别页面含有自身的logo,而logo是http链接,必须采用CSS使其不显示!
详细可以看一下我的CSS。
最后一点:
把本地embed.js上传到你的空间(或者其他https空间)把后台的comment.php里面的多说embed.js换成你的embed.js地址。
至此!多说问题已经解决!
typecho文件修改
现在再看看你的博客首页,是不是有一把小绿色锁了?如果没有,请F12检查问题。
但是,你打开后台仍然是http地址,如果你强制使用https访问后台会出现问题。
下面是解决方法:
打开根目录:config.inc.php
文件,添加以下常量定义即可解决:define('__TYPECHO_SECURE__',true);
此时不仅后台地址变成https,而且,首页的博文链接都自动变成https的了!
域名重定向至Https
仅提供以下几种方法:
- 我在使用的
rewriteEngine on rewriteCond %{http_host} ^ihewro.com.* [OR] rewriteRule ^(.*)$ https://ihewro.com/$1 [R=301,L]
- 百度的方法(我使用之后,会出现重定向次数过多,有人测试成功)
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
至此!https,应该就没有问题了!
评论 (0)