术语表

SSL (安全套接层)

最后核实

定义

SSL 是 Netscape 在上世纪 90 年代设计的加密传输协议,已被 TLS 完全取代,如今“SSL”多半只是 TLS 和证书的习惯叫法。

SSL(Secure Sockets Layer,安全套接层)是 Netscape 在 1990 年代中期为浏览器与网站之间加密通信而设计的协议。SSL 1.0 从未公开发布,SSL 2.0 于 1995 年推出,SSL 3.0 于 1996 年推出;1999 年 IETF 在其基础上标准化出 TLS 1.0。如今所有 SSL 版本都已被攻破并被禁止使用,但“SSL”作为习惯叫法一直保留了下来,常被用来泛指 TLS、证书 和 HTTPS。

为什么重要

国内买证书时看到的“SSL 证书”、宝塔面板站点设置里的“SSL”选项、阿里云和腾讯云的“SSL 证书服务”,实际使用的都是 TLS 协议。分清这两个概念有助于排查配置:如果服务器仍然接受 SSL 3.0,就会受到 POODLE 攻击的影响,RFC 7568 已在 2015 年正式废弃 SSL 3.0。今天的服务器应只开启 TLS 1.2 和 TLS 1.3。OpenSSL、BoringSSL 等库名以及 nginx 的 ssl_protocols 指令沿用旧名,只是历史原因,并不代表还在使用 SSL 协议。

例子

nginx 的指令名虽然叫 ssl_protocols,里面应只写 TLS 版本:

ssl_protocols TLSv1.2 TLSv1.3;

常见误区

  • SSL 和 TLS 是两种需要二选一的产品。 它们是同一条协议演进线上的前后版本,今天叫“SSL”的东西实际跑的都是 TLS。
  • “SSL 证书”只能配合 SSL 协议使用。 证书是与协议版本无关的 X.509 文件,同一张证书可以同时用于 TLS 1.2 和 TLS 1.3。
  • 关闭 SSL 3.0 会影响正常用户访问。 2014 年 POODLE 公开后,主流浏览器就已停用 SSL 3.0,关闭它对正常访问没有影响。

延伸阅读