当前位置: 首页 > 知识库问答 >
问题:

使用调用API的jar解决Jenkins流水线中的握手失败

任伟
2023-03-14

我试图建立一个詹金斯管道,这将自动触发提交到Git。在管道中,我正在执行一个调用REST API的。jar文件。jenkins服务器是一个已经存在的服务器(我的访问权限有限)。在。jar文件中,我接受所有SSL证书为

try {
      // Create a trust manager that does not validate certificate chains
      final TrustManager[] trustAllCerts = new TrustManager[] {
          new X509TrustManager() {
            public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
            }

            public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
            }

            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];
            }
          }
      };
      System.setProperty("https.protocols", "SSLv3");
      final SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
      sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

openssl s_client-连接myserver.com:443

在我的本地机器和詹金斯管道上都返回了

新,TLSV1/SSLV3,密码为ECDHE-RSA-AES128-GCM-SHA256服务器公钥为2048位安全重新协商支持压缩:无扩展:无ALPN协商SSL-Session:
协议:TLSV1.2
密码:ECDHE-RSA-AES128-GCM-SHA256
会话-ID:7CAB0E15710F2218A5B35D7819970AE062FFAAC85EFA87C3A534DEB668A7DA71
会话-ID-CTX:
主密钥487069093E97540FD57B18814E43D2810FDDE046CC5E5B67E05A0155AD775019B7EAB824
密钥-arg:NONE
PSK标识:NONE
PSK标识提示:NONE
SRP用户名:NONE
开始时间:1536747840
超时:300(秒)
验证返回代码:0(确定)

我的Jenkins服务器使用JDK1.7(jar在freestyle项目中运行良好),如果能解决这个问题,请提供任何帮助。

共有1个答案

邵璞
2023-03-14

从您上面的评论来看,您所遇到的问题似乎是,对于管道构建,Java出于某种原因使用了一组不同的配置密码套件。

通过在管道中执行Java应用程序时使用两个附加命令行选项调用Java应用程序,您应该能够解决这个问题:

java -Ddeployment.security.SSLv3=true \
     -Ddeployment.security.TLSv1=true \
     -Ddeployment.security.TLSv1.1=true \
     -Ddeployment.security.TLSv1.2=true \
     -jar myapp.jar -whatever -other -flags -you -need
 类似资料:
  • 问题内容: 我正在尝试将Jenkins CI配置为对我们的项目执行持续集成,并且无法使其通过https连接到我们的SVN存储库。每当我尝试配置存储库URL并尝试连接时,都会遇到以下异常: 我在tomcat实例上启用了SSL调试(使用),并得到了以下信息: 我尝试按照这篇文章中的说明在tomcat中添加属性,但仍然出现相同的错误。 在这一点上,我对发生的事情完全感到困惑。不幸的是,我不是完全了解SS

  • 我正在尝试编写一个JAVA程序来连接到JIRA REST API。我使用与此类似的代码通过我的证书连接到其他服务: 我得到一个错误: main,处理异常: javax.net.ssl.SSLHandshakeException: Received fatal alter: handshake_failure javax.net.ssl.SSLHandshakeExcepitp: Received

  • 对于MIPS架构的标准5级管道,并假设一些指令相互依赖,如何将管道气泡插入到以下汇编代码中? 首先我们插入一个气泡,我们 如您所见,当I3暂停时,I4可以继续解码。对不对?下一个 我认为这在MIPS的标准管道中是可能的,但有人说,每当插入气泡时,整个管道都会停顿。如何才能解决这个问题?

  • 问题内容: 我设法在我的基础架构(Webfactions)上部署了流星。该应用程序似乎运行良好,但是当我的应用程序启动时,我在浏览器控制台中收到以下错误: 问题答案: WebSocket速度很快,您不必(也不应该)禁用它们。 导致此错误的真正原因是Webfactions使用nginx,并且nginx配置不正确。通过设置和,以下是正确配置nginx代理WebSocket请求的方法: 这是基于Davi

  • clean install build-helper:parse-version版本:set-dnewversion=${parsedversion.majorversion}.${parsedversion.minorversion}.${parsedversion.nextincrementalversion}-快照版本:commit 这和预期的一样,没有任何问题。但是,当我试图使用以下命令执

  • 请注意:问题是基于旧的,现在称为“脚本”管道格式。当使用“声明性管道”时,并行块可以嵌套在阶段块内(请参见使用声明性管道的并行阶段1.2)。 我想知道并行步骤应该如何使用Jenkins工作流/管道插件,特别是。如何将它们与构建阶段混合。我知道一般的模式: 我可以并行地构建不同的阶段吗?或者“并行”步骤只意味着在单个阶段中使用?