跳到主要内容
版本:3.10.x

SNI

SNI(服务器名称指示,Server Name Indication)表示服务的主机名和证书之间的多对多映射。因此,通过使用 SNI,多个服务可以共享一个证书对象。

SNI 的工作原理

由于 API7 网关位于实际后端服务的前面,因此它在握手过程中充当服务器的角色。

客户端发起 SSL/TLS 连接时,会在 TLS 握手的服务器名称指示(SNI)字段中携带要访问的主机名。服务器根据客户端发送的 SNI 从证书库中选择合适的 SSL 证书,并将匹配的证书发送给客户端,以完成 TLS 握手并建立安全连接。

在双向 TLS(mTLS)中,除了 SSL 证书外,还需要 CA 证书。服务器出示证书后,客户端也会向服务器出示自己的证书。服务器使用 CA 证书的公钥验证客户端证书,确保客户端已完成身份认证并获得访问服务器资源的授权。此时,客户端和服务器已相互确认身份,从而建立安全的双向身份认证连接。

使用场景

  • 高效利用资源: 允许具有不同主机名的多个服务共享证书管理,从而降低基础设施的成本和复杂性。
  • 增强安全性: 确保为每个主机名提供正确的 SSL 证书,维护安全连接并防止潜在的安全漏洞。

更多资源