SSL出错,因为升级了驱动,字符串增加Encrypt=True;TrustServerCertificate=True; 返回

SqlSugar 处理完成
9 321

版本:5.1.4.169

本地运行没问题,在linux服务器上报这个错误:加上Encrypt=True;TrustServerCertificate=True;也报错中文提示 : SSL出错,因为升级了驱动,字符串增加Encrypt=True;TrustServerCertificate=True;即可。详细错误:已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL 提供程序, error: 31 - 加密(ssl/tls)握手失败)\r\nEnglish Message : 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL 提供程序, error: 31 - 加密(ssl/tls)握手失败)

热忱回答9

  • 我的连接串:"Server=127.0.0.1;Database=DB;User Id=sa;Password=123456789;Connect Timeout=500;Encrypt=True;TrustServerCertificate=True;"
    数据库是:SqlServer
    在Linux服务器报上面的错误

    0 回复
  • new SqlConnection(字符串).Open()

    这个能跑ORM就能跑

    0 回复
  • 方案1. 在客户端环境中安装目标 SQL Server 的 TLS/SSL 证书。 如果需要加密,将对其进行验证。

    方案2.(不太安全)在连接字符串中设置“TrustServerCertificate=true”属性。

    方案3.(不安全的解决方案)在 docker 映像/客户端环境中配置 TLS/SSL 设置,以便与 TLS 1.0 连接。

    MinProtocol = TLSv1 

    CipherString = DEFAULT@SECLEVEL=1


    0 回复
  • @fate sta

    数据库都是连的远程数据库,在Windows显示能成功,但是在Linux报错

    image.png

    image.pngimage.png


    0 回复
  • @fate sta:有什么简单点的解决办法吗?


    0 回复
  • kiyo kiyo VIP0
    2周前

    我也同样遇到了,在linux上远程连接sqlserver,即使在连接串加上Encrypt=True;TrustServerCertificate=True; 依旧报这个错误

    0 回复
  • @kiyo: new SqlConnection(字符串).Open() 原生能跑就行了

    0 回复
  • Ray Ray VIP0
    4天前

    我也同样遇到了,在linux上远程连接sqlserver,即使在连接串加上Encrypt=True;TrustServerCertificate=True; 依旧报这个错误

    问题我还是部署的 阿里云fc,Debian 9.NET 6.0 

    又不能修改环境,郁闷

    0 回复
  • @Ray: new SqlConnection(字符串).Open() 用原生测试

    0 回复