Gitlab - 由于 TLS10,我的单元测试无法正常工作

Posted

技术标签:

【中文标题】Gitlab - 由于 TLS10,我的单元测试无法正常工作【英文标题】:Gitlab - my unit testing not working because of TLS10 【发布时间】: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/… 我检查了你的解决方案,没有运气,但它没有帮助,因为协议加密是强制的...... 【参考方案1】:

我的问题终于解决了。 客户端“幸运地”切换到具有 TSL1.2 的较新 SQL 服务器。

感谢您的帮助!

【讨论】:

以上是关于Gitlab - 由于 TLS10,我的单元测试无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

单元测试

由于单元测试而面试失败-我需要了解原因[关闭]

Gitlab CI 持续集成的完整实践

使用无脂肪框架进行单元测试

如何编写单元测试以确保我的基于日期/时间的代码适用于所有时区以及有/无 DST?

实施具有通用部署和测试阶段的多项目 gitlab 管道