你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
从 2025 年 3 月 31 日起, 将为 Azure Cosmos DB 启用对 TLS 1.3 的支持。
Azure Cosmos DB 将在全球范围内在其平台上启用公共终结点上的 TLS 1.3 支持,以符合安全最佳做法。 本文提供了有关如何为 Azure Cosmos DB 即将推出的 TLS 1.3 支持做好准备的额外指导。
与前一代相比,TLS 1.3 引入了大量增强功能。 TLS 1.3 改进侧重于性能和安全性,包括更快的握手速度和简化的一组更安全的密码套件,即 TLS_AES_256_GCM_SHA384 和 TLS_AES_128_GCM_SHA256。 值得注意的是,TLS 1.3 通过消除不支持它的密钥交换算法来优先考虑完美转发保密 (PFS)。
使用最新的可用 TLS 版本的客户端会在 TLS 1.3 可用时自动选取它。 除了 TLS 1.3 之外,Azure Cosmos DB 还继续支持 TLS 1.2。
以下是 TLS 1.3 启用的一些已知问题、潜在影响和缓解措施。
已知问题、影响和缓解措施
JDK 相关问题:
4.1.68.Final与4.1.86.Final(含)之间的 io.netty 版本存在一个缺陷,当 Java 运行时引擎不支持 TLS 1.3 时,客户端在直接模式连接中会导致 TLS 握手失败。 Azure Cosmos DB Java SDK 版本(范围从 4.20.0 到 4.40.0(含))对于存在此 bug 的 io.netty 具有转换依赖性。 客户端失败,出现java.lang.IllegalArgumentException异常,如此处所示。Caused by: io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem at ... Caused by: java.lang.IllegalArgumentException: TLSv1.3 at sun.security.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:187)缓解建议:
注意
使客户端能够使用 TLS 1.3 需要 Java 运行时支持 TLS 1.3