PAYATHON 2026

Aerospike mTLS 支持仅由服务器验证客户端证书吗?

数据小许

结论

Aerospike 文档列出的客户端到集群 TLS 模式包括标准认证和双向认证。启用 tls-authenticate-client 对客户端证书进行认证时,文档要求先配置客户端用于验证服务器证书的标准 TLS 设置。文档没有说明能否只通过服务器端配置关闭客户端对服务器证书的验证。因此,如果不修改客户端的验证行为,文档未提供这种非对称验证模式。

配置含义

tls-authenticate-client false 表示客户端验证服务器;设为 any 时,服务器接受有效的客户端证书链;设为指定名称时,服务器还会校验客户端证书名称。双向认证也需要配置服务器证书和客户端证书相关参数,例如:

network {
  tls CLUSTER-NAME {
    cert-file /path/to/server_chain.pem
    key-file /path/to/server_key.pem
    ca-file /path/to/client_ca.pem
  }

  service {
    tls-name CLUSTER-NAME
    tls-authenticate-client any
  }
}

ca-file 用于服务器验证客户端证书。服务器证书和客户端信任配置仍需按标准 TLS 方式设置。any 控制的是服务器对客户端证书的验证,不表示客户端可以跳过服务器证书验证。Aerospike 文档分别介绍了客户端与集群间的 TLS 认证模式和TLS 配置参数。

如果客户端库提供关闭服务器证书验证的选项,那是客户端侧的 TLS 行为,不能据此认为 Aerospike 服务器也提供了相应配置。关闭验证会削弱服务器身份认证,不适合作为常规生产配置。请根据所用客户端语言和版本核对 TLS 选项。

排查 5 至 6 ms 延迟

连接复用时,每次操作的延迟不一定包含一次完整 TLS 握手。建议分别记录建连、TLS 握手和连接建立后的操作耗时,并确认连接池确实复用了 TLS 连接,而不是频繁重建连接。还可以检查客户端是否发生重新连接,并确认密码认证和 mTLS 两组数据是在相同的网络、负载、超时和连接池条件下测量的。

目前提供的延迟数据不足以确认差值来自 TLS 握手、连接重建还是其他环节。确认连接稳定复用后,可以检查客户端库及 TLS 版本是否支持会话复用,并通过分阶段计时定位开销。具体能力取决于客户端实现和版本,无法仅凭服务器配置推断。

备注:内容仅供参考。