【问题标题】:Jenkins CLI with HTTPS带有 HTTPS 的 Jenkins CLI
【发布时间】:2015-07-13 18:20:24
【问题描述】:

我的 Jenkins 服务器现在使用 HTTPS 切换到了。但是,现在尝试运行 jenkins-cli.jar 时,出现以下错误:

Exception in thread "main" java.io.IOException: Failed to connect to https://ncs-jenkins.cisco.com/
    at hudson.cli.CLI.getCliTcpPort(CLI.java:266)
    at hudson.cli.CLI.<init>(CLI.java:126)
    at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
    at hudson.cli.CLI._main(CLI.java:466)
    at hudson.cli.CLI.main(CLI.java:382)
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:902)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1208)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1235)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1219)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:440)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
    at hudson.cli.CLI.getCliTcpPort(CLI.java:264)
    ... 4 more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.read(InputRecord.java:482)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:883)
    ... 11 more

有没有办法通过 HTTPS 使用 Jenkins CLI?

例如,当我尝试运行帮助命令时,就会发生这种情况:

java -jar jenkins-cli.jar -noCertificateCheck -s https://ncs-jenkins.cisco.com:8443/ -i /home/auto/.ssh/id_rsa help

【问题讨论】:

  • 你试过这个选项吗--> -noCertificateCheck
  • 也许你可以在你的帖子中复制/粘贴你的 Jenkins CLI,它可以帮助解决你的问题;)
  • 很抱歉。刚刚发布了一个我尝试运行的示例命令
  • 感谢 -noCertificateCheck 它有效

标签: ssl jenkins https jenkins-cli


【解决方案1】:

这对我有用:

java -jar jenkins-cli.jar -noCertificateCheck -auth @jenkins_creds.txt -s https://jenkins.example.com help

(如果我省略了-auth,那么我会收到关于需要对 Jenkins 实例进行身份验证的预期错误,但这似乎与您的错误无关。)

java-version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Jenkins 版本:2.138.3

我想知道如果 HTTPS 证书验证失败,您的 cli 和 Jenkins 服务器之间是否有其他设备会切断连接。

【讨论】:

    【解决方案2】:

    我在我的一个詹金斯奴隶上遇到了同样的问题。 由于奴隶应该是相同的,我开始研究机器之间最细微的差异。 事实证明,java 版本略有不同:

    java-1.7.0-openjdk-1.7.0.75.x86_64 - 在工作机器上

    java-1.7.0-openjdk-1.7.0.85.x86_64 - 在失败的那个上。

    我恢复到较早的 openjdk 版本,问题已解决。 由于您几天前才问过这个问题,我怀疑我们遇到了同样的问题。

    检查您的版本:

    java -showversion -verbose 2>&1 | head -1
    

    要安装以前的openjdk版本(在centos上):

    yum install java-1.7.0-openjdk-devel-1:1.7.0.75-2.5.4.0.el6_6.x86_64
    

    【讨论】:

      【解决方案3】:

      如果您使用的是有效的 SSL 证书。 查看jenkins-cli commands returning connect timed out

      PS:这不是解决方案,但在找到解决方案之前可能是一种解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-21
        • 2018-05-26
        • 2015-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多