免费 TLS 证书与 HTTPS
本指南译自英文。部分链接页面仅提供英文版本。
自动 HTTPS 的工作原理、如何签发和续期证书,以及为什么绝不应使用 HTTP 上线。
HTTPS 已不再是可选项。浏览器会把纯 HTTP 标记为“不安全”,搜索引擎会降低其排名,通过它登录或付款确实不安全。
这里是如何工作的
我们使用 Let's Encrypt(免费、自动化、被广泛信任)的证书,由 Certbot 签发和续期。当你把域名关联到网站时,我们可以自动申请证书并在到期前续期。你无需付费,也无需记得续期。
签发证书
确保域名的 DNS 已指向我们——证书颁发机构会验证你控制该名称,只有名称解析到这里才能完成验证。
在 /panel/web 中打开网站,选择 SSL/TLS 并添加域名。
我们会申请并安装证书,通常只需几秒钟。
请同时申请 example.com 和 www.example.com,这样两者都不会出现警告。
续期
续期是自动的。你可以在面板中确认计划,并随时检查到期日期:
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
| openssl x509 -noout -subject -dates如果续期失败,几乎总是因为域名不再解析到我们(DNS 已更改)、80 端口被屏蔽(验证需要它),或在多次失败后触发了速率限制。修复原因后再手动重试。
将 HTTP 重定向到 HTTPS
仅有证书并不能阻止人们访问纯 HTTP 版本。请添加永久重定向——参见强制 HTTPS 与重定向。设置后,即使访问者输入 http://,也会进入安全版本。
认真测试
curl -I http://example.com # should be a 301 to https://
curl -I https://example.com # should be 200还要检查混合内容:通过 HTTPS 提供的页面如果用纯 HTTP 加载图片或脚本,浏览器会将其标记为不安全。请从 https:// URL 加载所有资源。
在代理或 CDN 之后
如果你在我们前面放置 CDN,证书链包括 CDN → 访问者,以及 CDN → 源站。两段都需要证书。源站一侧由我们签发;面向访问者的名称由 CDN 签发。请参阅什么是 CDN,你需要吗?。
延伸阅读