ssl-700x180.png

前言

今天折腾了一天,终于搞定(后面又发现了一些问题)了全站https。现在有很多免费的SSL证书一键部署,不需要任何服务器的上传操作即可,所以很简单。

困难的部分是https页面不允许“不安全链接”—即http链接,所以页面所有的http链接都需要更换成https或者删除。其中多说是最坑的。神坑~不知道折腾了多久,才基本搞定!不知道是否还有问题,如有,请提出来,非常感谢:grinning:

好了,下面进入正式的步骤。

申请SSL证书

我使用的是cloudflare,使用北京鹏博士的教育网,访问速度不快,使用请谨慎,但是4G下,速度还是蛮快的...(我也考虑换一个证书提供商)。

  1. 注册账号,把你的域名DNS接管到cloudfare。
  2. 在DNS页面必须启用它的CDN加速
  3. 在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 是字段名称
    两个地址 前面是替换前的地址,后面是替换后的地址

多说的问题

多说头像
  1. 多说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链接即可。

  1. 打开本地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

仅提供以下几种方法:

  1. 我在使用的

    rewriteEngine on
    rewriteCond %{http_host} ^ihewro.com.* [OR]
    rewriteRule ^(.*)$ https://ihewro.com/$1 [R=301,L]
  2. 百度的方法(我使用之后,会出现重定向次数过多,有人测试成功)

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

至此!https,应该就没有问题了!

参考文章

最后修改:2019 年 03 月 23 日
喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。