在使用 Navicat 连接 SQL Server 时,用户常遇到“未找到可信任的 SSL 连接(A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.))”错误。此问题通常由 SQL Server 使用的 SSL 证书不受客户端信任引起。可能的原因包括:服务器使用自签名证书、证书颁发机构(CA)未被信任、或未正确配置 SSL 设置。解决方法包括:在客户端安装并信任服务器证书、配置 SQL Server 强制加密并使用受信任证书、或在连接设置中禁用 SSL 加密(不推荐用于生产环境)。掌握这些排查与配置技巧,有助于快速恢复 Navicat 与 SQL Server 的安全连接。
1条回答 默认 最新
请闭眼沉思 2025-08-10 08:30关注一、问题背景与现象描述
在使用 Navicat 连接 SQL Server 数据库时,用户可能会遇到如下错误信息:
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)
该错误表明客户端与 SQL Server 成功建立了 TCP 连接,但在 SSL/TLS 握手阶段失败,具体原因为证书链无法被客户端信任。
二、可能原因分析
- SQL Server 使用的是自签名证书,未被客户端信任
- 证书由内部 CA 签发,但该 CA 未被客户端操作系统信任
- SSL/TLS 协议版本不兼容,或加密设置配置错误
- Navicat 客户端未正确配置信任策略
三、排查流程图
graph TD A[尝试连接SQL Server] --> B{是否成功建立TCP连接?} B -->|是| C{SSL握手是否失败?} C -->|是| D[证书不受信任] D --> E[检查证书来源] E --> F{是否为自签名证书?} F -->|是| G[安装证书到客户端信任存储] F -->|否| H[检查CA是否被信任] H --> I[将CA证书导入信任根证书颁发机构] C -->|否| J[其他SSL配置问题] J --> K[检查SQL Server配置和协议加密设置]四、解决方案详解
- 安装并信任服务器证书
- 导出 SQL Server 使用的证书(.cer 文件)
- 在客户端操作系统中,打开
certmgr.msc - 将证书导入到 受信任的根证书颁发机构 或 本地计算机 存储中
- 配置 SQL Server 使用受信任证书
- 在 SQL Server Configuration Manager 中启用强制加密
- 将由可信 CA 签发的证书绑定到 SQL Server 服务
- 重启 SQL Server 服务使配置生效
- 在 Navicat 中禁用 SSL 加密(不推荐)
- 进入 Navicat 的连接设置页面
- 勾选
Use SSL并选择Accept any server certificate(仅限测试环境)
五、相关配置示例
以下是一个 SQL Server 强制加密配置的 PowerShell 示例:
# 导入证书 Import-Certificate -FilePath "C:\cert\sqlserver.cer" -CertStoreLocation Cert:\LocalMachine\My # 设置 SQL Server 强制加密 Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\SuperSocketNetLib" -Name "ForceEncryption" -Value 1 Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\SuperSocketNetLib" -Name "Certificate" -Value "{Thumbprint of the certificate}"六、验证连接与常见注意事项
连接验证建议步骤:
步骤 操作说明 1 使用 ping和telnet验证网络连通性2 使用 openssl s_client -connect <server>:<port>测试 SSL 握手3 在 Navicat 中重新尝试连接并查看日志 注意事项:
- 禁用 SSL 加密仅限于测试环境,生产环境应始终启用加密
- 证书应定期更新,避免因过期导致连接中断
- 使用组策略统一部署证书可提高企业级管理效率
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报