前言
今天折腾了一天,终于搞定(后面又发现了一些问题)了全站https。现在有很多免费的SSL证书一键部署,不需要任何服务器的上传操作即可,所以很简单。
困难的部分是https页面不允许“不安全链接”—即http链接,所以页面所有的http链接都需要更换成https或者删除。其中多说是最坑的。神坑~不知道折腾了多久,才基本搞定!不知道是否还有问题,如有,请提出来,非常感谢:grinning:
好了,下面进入正式的步骤。
申请SSL证书
我使用的是cloudflare,使用北京鹏博士的教育网,访问速度不快,使用请谨慎,但是4G下,速度还是蛮快的...(我也考虑换一个证书提供商)。
- 注册账号,把你的域名DNS接管到cloudfare。
- 在DNS页面必须启用它的CDN加速
- 在Crypto页面,SSL选择flexible(灵活)
OK!
修改后台永久链接
基本-站点地址 修改成含有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,应该就没有问题了!
11 条评论
[...]相关文章:多说适配HTTPS[...]
问一下现在看多说的embed.js支持https访问了 网站头像也陆续支持https 请问对此是不是可以减少点什么步骤qwq
看了一下好像全部都支持https了,包括头像和表情。就不需要自己用PHP反代。
已经更新了文章了,没有测试,不确保完全正确哦。。
如果有问题可以再来找我
具体隐藏多说logo的css是什么qwq
就是消息提醒框打开后,左下角的位置有一个多说的logo,也是http的资源。找到那个位置,直接display:none 就可以了
看你的博客,其他的部分似乎还没有弄好呢
今天折腾了一天,终于完成了全站 htpps。虽然很累 (因为我初次搞这个,没有经验,其实很简单的!按照下面步骤,一个小之内即可完成)。
我是大半夜敲的!哼哼。多说的游客头像不知道为什么不能显示~~
不知道 方正也没几个游客=w=
有道理[笑cry]
666ε=ε=(ノ≧∇≦)ノ