我正在尝试使用Java Web Start方法启动Windows Jenkins从属设备,命令如下:
java -jar agent.jar -jnlpUrl https://masterIP:8443/jenkins/computer/test-slave/slave-agent.jnlp-秘密secretString -workDir“ D:\ JenkinsSlave”
但是我遇到了连接问题:
线程“主”中的异常java.io.IOException:无法验证服务器证书。如果您使用的是自签名证书,则可以使用-noCertificateCheck选项绕过此检查。
在hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:548)
在hudson.remoting.Launcher.run(Launcher.java:322)
在hudson.remoting.Launcher.main(Launcher.java:283)
原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.Validator 异常:PKIX路径构建失败:sun.security.provider.certpath.SunCertPath BuilderException:无法找到到所请求目标的有效认证路径
在sun.security.ssl.Alerts.getSSLException(未知来源)
我认为这是因为我的詹金斯夫妇使用了自签名证书,并且还使用了客户端证书(clientStore.p12)进行连接。我已经通过使用keytool将jenkins根证书添加到JAVA keyStore中,并且还尝试使用-noCertificateCheck跳过https证书检查,但是出现了另一个错误:
D:\ JenkinsSlave> java -jar agent.jar -jnlpUrl https://masterIP:8443/jenkins/computer/test-slave/slave-agent.jnlp-秘密机密-workDir“ D:\ JenkinsSlave” -noCertificateCheck
完全跳过HTTPS证书检查。请注意,这根本不安全。
08,2018 10:29:23 org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
信息:使用D:\ JenkinsSlave \ remoting作为远程工作目录 错误日志和输出日志都将打印到D:\ JenkinsSlave \ remoting 线程“主”中的异常javax.net.ssl.SSLHandshakeException:收到致命错误 提醒:bad_certificate
在sun.security.ssl.Alerts.getSSLException(未知来源)
我不确定是什么问题,也许我需要配置客户端证书,但是我不知道如何将客户端证书添加到启动命令中,或者有什么方法可以设置客户端证书?