我的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
答案 0 :(得分:0)
我在我的一个jenkins奴隶身上遇到了同样的问题。 由于奴隶应该是相同的,我开始调查机器之间的最微小差异。 事实证明,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
答案 1 :(得分:0)
如果您使用的是有效的SSL证书。 查看jenkins-cli commands returning connect timed out
PS:这不是解决方案,但在找到解决方案之前可能是一种解决方法。
答案 2 :(得分:0)
这对我有用:
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)
詹金斯版本:2.138.3
我想知道cli和Jenkins服务器之间是否还有其他设备可以在HTTPS证书验证失败的情况下切断连接。