如何配置SQL连接字符串的Encrypt与TrustServerCertificate解决证书错误?
SQL Server私有SSL证书连接问题解决
参数作用说明
Encrypt:控制连接是否启用SSL加密。如果服务器配置了FORCE ENCRYPTION = ON,即便客户端设置为False,连接也会强制走加密流程。TrustServerCertificate:仅在Encrypt=True时生效,作用是跳过证书链的信任验证,直接信任服务器的私有证书。
错误原因
你设置TrustServerCertificate=True但Encrypt=False,但服务器强制了加密连接,此时连接仍会触发SSL证书验证,但TrustServerCertificate因Encrypt未启用(客户端设置)而不生效,因此出现证书链不受信任的错误。
正确设置方案
将Encrypt设为True,同时保持TrustServerCertificate=True。只有这样,TrustServerCertificate的设置才会生效,跳过私有证书的信任链验证,解决连接报错问题。
两者是否需要设为相同值?
不需要,逻辑关系如下:
- 若
Encrypt=False:默认不加密,TrustServerCertificate参数无效;但服务器强制加密时,连接会自动升级为加密模式,此时若证书不受信任则会报错。 - 若
Encrypt=True:必须处理证书验证——要么证书由受信任CA颁发(此时TrustServerCertificate可设为False),要么设置TrustServerCertificate=True跳过验证。
内容的提问来源于stack exchange,提问作者Christy
相关产品推荐
相关产品推荐

