可以将 SQL Server 加密模式配置为“严格”而不是“强制”。与其他版本的 SQL Server 和 ODBC 驱动程序不同,在这些版本中您只能指定是否要加密,而选择已从“真/假”或“是/否”更改为“可选/强制/严格”。但是我找不到“严格”模式到底是什么。是否有任何其他检查,或者它与“强制”有何不同?它似乎仅适用于 SQL Server 2022 和 ODBC 驱动程序 18.0。我注意到的一件事是,它允许我指定 SQL Server 证书中预期的主机名以及证书本身的路径。它是否强制连接使用 TLS1.3?还有其他变化吗?
答案1
我认为问题中已经概述了这一点,但我还是在这里提一下:
- 严格模式支持客户端与服务器之间使用 TDS 8 协议进行通信,该协议与 TLS 更加一致。在通信的各个阶段,消息始终是加密的。
- 它也兼容 TLS 1.3,但也支持 TLS 1.2。
- 连接字符串中的选项
encrypt
不再是二进制的是/否或真/假,而是可以接受可选/强制/严格,其中可选与否/假相同,而强制为是或真。 - 连接字符串中的选项
TrustServerCertificate
被忽略并且始终验证证书。 - 从 SQL Server 2022、SQL Server 的 ODBC 驱动程序 18 和 JDBC 驱动程序 11.2 开始支持严格模式。
- 该
ServerCertificate
选项允许指定服务器证书的路径。如果缺少证书,则根据信任库验证证书。Windows 证书信任库用于 ODBC,Java 信任库用于 JDBC。 - 允许
HostNameInCertificate
指定证书中要验证的主机名,但如果未指定该选项,则检查实际的服务器。
其他链接: