我试图通过使用Java Web Start方法启动Windows Jenkins slave,命令如下:

java -jar agent.jar -jnlpUrl https://masterIP:8443/jenkins/computer/test-slave/slave-agent.jnlp -secret secretString -workDir "D:\JenkinsSlave"

但我有一个连接问题:

线程“main”中的异常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(未知来源)

我认为这是因为我的jenkins使用了自签名的cetitficate,并且还使用了客户端证书(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 -secret secret -workDir "D:\JenkinsSlave" -noCertificateCheck

完全跳过HTTPS证书检查 . 请注意,这根本不安全 .

08,20188 10:29:23 org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir

信息:使用D:\ JenkinsSlave \ remoting作为远程工作目录错误和输出日志都将打印到D:\ JenkinsSlave \ remoting线程“main”中的异常javax.net.ssl.SSLHandshakeException:收到致命的lert:bad_certificate

在sun.security.ssl.Alerts.getSSLException(未知来源)

我不知道问题是什么,也许我需要配置客户端证书,但我不知道如何将客户端证书添加到启动命令,或者有没有办法设置客户端证书?