前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ghost 博客 SSL 证书过期的解决办法

Ghost 博客 SSL 证书过期的解决办法

作者头像
Alan Lee
发布2021-12-07 15:48:09
7020
发布2021-12-07 15:48:09
举报
文章被收录于专栏:Small CodeSmall Code

问题

今天访问我的 Ghost 博客 的时候,发现进不去了:

在这里插入图片描述
在这里插入图片描述

网上找的图,不过就是这个样子,当时忘了截图

点击 高级 也没有进去的链接,而且页面地址前面写着”不安全“,证书显示也已经过期一个月了。而且我自己部署的 flask 服务也访问不了了。

原因

Ghost 本身其实会自动 renew 证书,可使用如下命令查看定时任务:

代码语言:javascript
复制
$ sudo crontab -l
14 0 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" > /dev/null

有这个输出就表示会自动 renew。但是根据网上的说法,Ghost 没有及时升级 /etc/letsencrypt/acme.sh 版本,造成 renew 失败之类的。

我看同目录下的 account.conf 中有一行是这样的:

代码语言:javascript
复制
#AUTO_UPGRADE="1"

自动升级默认是被注释掉的,不过我也不能百分比确定取消注释就会自动升级。具体我也不是很懂,就不多说了,就提一嘴。

解决

所以总而言之,就是要升级 [acme.sh](http://acme.sh) 然后重启 Ghost

进入 acme.sh 目录:

备份原文件:

升级:

升级后的文件是放在 home 目录下的,所以要 cp 过来:

手动执行一次定时任务。注意加上 --force,原因:

代码语言:javascript
复制
$ sudo "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt"
[Fri Apr 30 09:53:20 CST 2021] ===Starting cron===
[Fri Apr 30 09:53:21 CST 2021] Renew: 'northcloudgate.com'
[Fri Apr 30 09:53:22 CST 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Fri Apr 30 09:53:22 CST 2021] Single domain='northcloudgate.com'
[Fri Apr 30 09:53:22 CST 2021] Getting domain auth token for each domain
[Fri Apr 30 09:53:25 CST 2021] Getting webroot for domain='northcloudgate.com'
[Fri Apr 30 09:53:25 CST 2021] Verifying: northcloudgate.com
[Fri Apr 30 09:53:30 CST 2021] Success
[Fri Apr 30 09:53:30 CST 2021] Verify finished, start to sign.
[Fri Apr 30 09:53:30 CST 2021] Lets finalize the order.
[Fri Apr 30 09:53:30 CST 2021] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/64051473/9381845272'
[Fri Apr 30 09:53:31 CST 2021] Downloading cert.
[Fri Apr 30 09:53:31 CST 2021] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/03175a17da415b526b37dedf518750770ddc'
[Fri Apr 30 09:53:32 CST 2021] Cert success.
-----BEGIN CERTIFICATE-----
CERTIFICATE CONTENT==
-----END CERTIFICATE-----
[Fri Apr 30 09:53:32 CST 2021] Your cert is in  /etc/letsencrypt/northcloudgate.com/northcloudgate.com.cer
[Fri Apr 30 09:53:32 CST 2021] Your cert key is in  /etc/letsencrypt/northcloudgate.com/northcloudgate.com.key
[Fri Apr 30 09:53:32 CST 2021] The intermediate CA cert is in  /etc/letsencrypt/northcloudgate.com/ca.cer
[Fri Apr 30 09:53:32 CST 2021] And the full chain certs is there:  /etc/letsencrypt/northcloudgate.com/fullchain.cer
[Fri Apr 30 09:53:32 CST 2021] Run reload cmd: nginx -s reload
[Fri Apr 30 09:53:32 CST 2021] Reload success
[Fri Apr 30 09:53:32 CST 2021] ===End cron===

重启 Ghost:

然后,就又可以看到安全的小白锁了,证书也有效了:

在这里插入图片描述
在这里插入图片描述

彩蛋

在 Google “您的连接不是私密连接”这个问题的时候,意外发现了一个神奇操作:

”thisisunsafe“:这是我见过的最神奇最离奇的操作了,没有之一。当你遇到”您的连接不是私密连接“错误的时候,直接在当前页面”凭空“输入这个字符串,就可以进去页面了。注意是凭空,不是地址栏,你看不到你所输入的东西。#有用而有趣的冷知识https://t.co/TnZ5a5o5LN — Alan Lee (@bluekirin93) April 30, 2021

即,当你遇到“您的连接不是私密连接”错误的时候,直接在当前页面“凭空”输入 thisisunsafe,就可以进去页面了。注意是凭空,不是地址栏,你是看不到你所输入的东西的。

而且根据 reddit 上的说法,

  • 这个 bypass word 之前是 badidea,再之前是 danger
  • Chrome 65 的时候把 badidea 改成了 thisisnotsafe 又改成了 thisisunsafe。而且还用 base64 加密了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此外前文提到的 flask 服务也恢复正常了。

Reference

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 原因
  • 解决
  • 彩蛋
  • Reference
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档