Disqus 评论区因为一些小故障暂时要关闭一阵子,请大家见谅。(虽然还没有人留言就是了…)
近日访问博客的朋友可以发现,本博客已经开始支持 HTTPS 了: https://poplite.xyz
2019年6月4日更新:后记
本博客搭建在 Github Pages 平台上。Github Pages 对于博主这样偶尔写写博客的人来说已经足够了,但 Github Pages 有一个缺点:自定义域名无法使用 https 链接访问。
虽然 Github 早在2016年为 GitHub Pages 添加了 HTTPS 支持,但自定义域名开启 HTTPS 却是一件令人头疼的事情。 直接用 https 链接访问自定义域名会出现证书错误(这是因为 Github 提供的 SSL 证书指向的域名是*.github.com 和 *.github.io,而不是我们绑定的域名),只能使用 Cloudflare 之类的支持 Universal SSL 的 CDN 曲线支持 HTTPS 。
好消息是:就在前天(5月1日),GitHub 宣布与 Let’s Encrypt 合作,为 Github Pages 自定义域名提供官方的HTTPS 支持。如果在 Github Pages 绑定了域名,现在可以使用 Let’s Encrypt 签发的 SSL 证书为绑定的域名开启 HTTPS 访问。
下面介绍如何为已绑定的自定义域名启用 HTTPS 访问:
已经用上 Cloudflare,开始之前请关掉 Cloudflare 的 CDN 功能。
首先要修改 DNS 记录: (如果是使用CNAME或ALIAS记录,将自定义域名映射到 Github Pages 域名的,请跳过此步)
-
打开 DNS 服务商的 DNS 记录修改页面。(博主用的是 Namesilo 自带的 DNS)
-
原来域名 A 记录指向的IP地址是 192.30.252.153 和 192.30.252.154 ,改成下面几个新地址: 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153。(这些IP地址可以在这个页面上找到)
-
保存修改后,等待 DNS 记录生效。
然后,打开 GitHub Pages 设置页面:
- 找到处于不可选状态的Enforce HTTPS选项,旁边会提示Unavailable for your site because your domain is not properly configured to support HTTPS。
- 将填在Custom domain里的自定义域名清空,保存,然后重新填上自定义域名,再保存。
- 现在可以勾选Enforce HTTPS选项了,这时会提示正在签发证书: Not yet available for your site because the certificate has not finished being issued。
- 证书签发成功后,可以使用 https 链接访问自定义域名了。
也可以修改 DNS 记录后不等待记录生效,直接修改 GitHub Pages 设置,这时页面会提示Domain does not resolve to the GitHub Pages server,但不影响正常使用。
这是 Let’s Encrypt 为博客签发的 SSL 证书,有效期为3个月,估计到期后会自动续期:
后记:
2019年3月,博主已经将本博客迁移至Lightsail。博客现在使用的 Let’s Encrypt 证书是博主用acme.sh签发的。
博主并没有从 Github Pages 上移除博客,仍然可以找到 Github 签发的 Let’s Encrypt 证书(已经过期):
$ curl -vks https://poplite.xyz/ --resolve "poplite.xyz:443:185.199.108.153" > /dev/null
* Added poplite.xyz:443:185.199.108.153 to DNS cache
* Hostname poplite.xyz was found in DNS cache
* Trying 185.199.108.153...
* Connected to poplite.xyz (185.199.108.153) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 600 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256
* server certificate verification SKIPPED
* server certificate status verification SKIPPED
* common name: poplite.xyz (matched)
* server certificate expiration date FAILED
* server certificate activation date OK
* certificate public key: RSA
* certificate version: #3
* subject: CN=poplite.xyz
* start date: Wed, 27 Feb 2019 02:41:07 GMT
* expire date: Tue, 28 May 2019 02:41:07 GMT
* issuer: C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
* compression: NULL
* ALPN, server accepted to use http/1.1
> GET / HTTP/1.1
> Host: poplite.xyz
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: GitHub.com
< Content-Type: text/html; charset=utf-8
......
2022/1/28:由于 Disqus 存在不明的 BUG,新发布的评论需要等待数分钟至数小时才能显示出来
不等待、强制显示新评论的方法:评论发布成功后,点击“编辑”,直接按右下角的确认按钮即可(不用改动评论内容)