SSL/TLS 证书 (现在正确的名称是 TLS,但 SSL 证书这一叫法已经固定下来) 是为网络通信加密、并验证域名所有者的机制。经过 Let's Encrypt 的登场 (2016 年) 和 Chrome 强制要求 HTTPS (2018 年) ,到 2024 年,全球网络流量的 95% 以上都已通过 HTTPS 通信。若用自有域名运营短链接,SSL 证书的选型与运维直接关系到可信度。
SSL 证书分为 DV (Domain Validation) 、OV (Organization Validation) 、EV (Extended Validation) 3 种。DV 只验证域名所有权,价格低廉,Let's Encrypt 和 ZeroSSL 都免费签发。OV 与 EV 会验证到组织信息,因此过去被想强调品牌可信度的大企业网站采用。EV 曾经会在浏览器地址栏显示公司名称,但 Chrome 于 2019 年、Firefox 于 2020 年取消了这一显示,EV 与 OV 的差距实质上已经很小。对短链接服务而言,DV 证书搭配 Let's Encrypt 自动续期即为标准且足够。
通配符证书 (例如 `*.example.com`) 在用自有域名的短链接运营多个子域名时很有用。Let's Encrypt 可以免费签发通配符证书,但需要通过 ACME-DNS-01 挑战进行 DNS 记录验证,比 HTTP-01 挑战 (仅需放置文件) 的配置略为复杂。若与 Cloudflare、AWS Route 53 等托管 DNS 结合,即可自动化 DNS 挑战,运维大幅简化。
HSTS (HTTP Strict Transport Security) 是一个告知浏览器「本域名始终以 HTTPS 连接」的响应头,它会强制自动升级到 HTTPS,并禁止用户点击放行自签名证书。在短链接的域名上启用 HSTS,即使用户以 http:// 输入短链接,也一定会以 HTTPS 建立连接,中间人攻击的风险随之降低。把 max-age 设为 1 年以上 (31536000 秒) ,并同时使用 includeSubDomains 与 preload 选项,就可以登记到 HSTS Preload 列表 (Chrome 的内置列表) 。
CT (Certificate Transparency) 日志是把已签发的所有 SSL 证书记录到公开日志中的机制,Chrome 已经不再信任未登记到 CT 日志的证书。Let's Encrypt 和 DigiCert 等主要 CA 会自动登记到 CT 日志,使用者无需额外操作。CT 日志可以在 `crt.sh` 上检索,也可用于监控针对自有域名的可疑证书签发这类安全用途。
证书的续期运维,是自有域名短链接服务最大的运维课题。Let's Encrypt 需要每 90 天续期一次,自动化是必须的。标准的做法是用 cron 定期执行 certbot、acme.sh、lego 等 ACME 客户端。如果不搭建把续期失败告警发到 Slack 或 PagerDuty 的监控,就会发生 90 天静默过期、SSL 错误突然出现的事故。
用 SSL 运营自有域名短链接的最佳实践有 4 点:使用 Let's Encrypt 的 DV 通配符证书、应用 HSTS 的 preload、监控 CT 日志、确保自动续期可靠运行。把这些都做好,就能长期运营免费且高可信度的自有域名短链接服务。