【发布时间】:2021-11-14 08:16:00
【问题描述】:
我收到以下错误:
Test > test xxxx > Test.test mytests [Id: xxxx, resultOut: xxxx , #7] STANDARD_ERROR com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“客户端首选项 [TLS13, TLS12] 不接受服务器选择的协议版本 TLS10”。 ClientConnectionId:xxxxxxxxxxxxxxxxxxxx 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3422)
我查看了许多开放主题和解决方案,但是:
- 我无法将 SQL 服务器从 TLS10 升级到 TLS12 或 TLS13(因为旧 SQL 服务器而被拒绝)
- 我无法降级到 java 7,我需要使用 java 11
- 我升级到jre11的最新版本 编译组:'com.microsoft.sqlserver',名称:'mssql-jdbc',版本:'9.4.0.jre11'
gitlab-ci.yml 代码:
test:
stage: test
tags:
- Linux
script:
- echo "Test stage"
- ./gradlew test -i
这些测试通过我的远程连接在我的笔记本电脑上完美运行。 但它不适用于(内部)GitLab 与我的远程连接
希望有解决办法……
【问题讨论】:
-
如果SQL Server不强制协议加密,可以在连接字符串中设置
encrypt=false。 docs.microsoft.com/en-us/sql/connect/jdbc/… -
我检查了你的解决方案,没有运气,但它没有帮助,因为协议加密是强制的......
标签: java sql-server unit-testing ssl