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

SNI

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

SNI 的工作原理

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

当客户端发起 SSL/TLS 连接时,它会在 TLS 握手的服务器名称指示(SNI)字段中包含其尝试访问的主机名。服务器使用从客户端接收到的 SNI 从其存储库中选择合适的 SSL 证书。然后,服务器将匹配的证书出示给客户端,完成 TLS 握手并建立安全连接。

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

使用场景

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

更多资源