
TLS Transport Layer Security —— HTTPS 之下的加密
在现代互联网的大部分之下,对服务器做认证并加密线路的协议。
在 HTTPS、SMTP、IMAP、MQTT 以及大多数现代应用协议之下,对服务器做认证并加密客户端与服务器之间通道的密码学协议。它是 SSL 的继任者——TLS 1.0 于 1999 年取代 SSL 3.0;当前版本是 TLS 1.3(RFC 8446,2018)。认证依赖一条以公开受信任的证书颁发机构为根的 X.509 证书链。
我们发布的一切都默认使用 TLS。
由 NordBastion 运营的每一个入口——营销网站、客户控制面板、JSON API、agents 端点、状态页、.well-known 注册表——都通过带现代密码套件的 TLS 1.2 或 TLS 1.3 应答,并预加载 HSTS、无条件将 80 端口的 HTTP 重定向到 HTTPS。通向我们任何服务的明文路径都不存在,自上线以来也从未存在过。
对客户工作负载而言,TLS 在你自己手里:VPS 给你一台 Linux 机器,你带上适合应用的证书机制——几乎一切都用 Let's Encrypt;如果合规审计要求,可以买一份 EV 证书;内部服务可以用私有 CA。1 Gbps 上行和底层 CPU 上的现代 AES-NI / VAES 支持意味着,即使在持续线速下,TLS 终结的开销基本上也只是噪声。
两个相邻、值得标注的要点。第一,TLS 不是端到端加密:聊天客户端和聊天服务器之间的 TLS 链路保护的是线路,但服务器运维者仍然可以读取消息。E2EE 的术语条目精确地划出了这条线。第二,TLS 通过证书认证服务器;它并不认证搭建该服务器的人。PGP 在指纹级身份这一角色上补足了这一点。
人们真正会问的问题。
SSL 与 TLS 有何不同?
TLS 是最初被称为 SSL 的协议的现代名字。Netscape 时代的 SSL 2.0 和 SSL 3.0 协议在 1999 年被改名并重做为 TLS 1.0,之后是 TLS 1.1、1.2 和 1.3。营销文案里仍然能见到「SSL 证书」「SSL/TLS」等说法,但每一个健康的现代部署在底层跑的都是 TLS 1.2 或 TLS 1.3。SSL 2.0 和 SSL 3.0 已被正式弃用,任何地方都不应再启用。
我如何为 VPS 上的某个域名申请 TLS 证书?
简单的答案是 Let's Encrypt:一家免费、自动化的证书颁发机构,通过 ACME 协议签发为期 90 天的域名验证证书。Certbot 客户端(或 caddy、traefik、nginx-acme、acme.sh 之一)一条命令就能完成签发、续期和 Web 服务器接线。我们不运营 NordBastion 品牌的 CA——Let's Encrypt 才是正确答案,我们原封不动地指向它。
TLS 与端到端加密是同一件事吗?
不是。TLS 保护的是客户端与服务器之间的链路。如果服务器是聊天后端或邮件服务商,那台服务器的运维者仍然可以读取消息——TLS 加密在他们的网关处终结。端到端加密是另一种属性:只有通信端点持有密钥;中间服务器只看到密文。端到端加密的专门术语条目深入讨论了这一区别。
NordBastion 的 API 强制要求 TLS 吗?
强制——api.nordbastion.com 上的每一个端点都要求带现代密码套件的 TLS 1.2 或 TLS 1.3;80 端口上的 HTTP 请求一律重定向到 HTTPS。营销网站、客户控制面板、状态页和 .well-known 入口同样如此。