美好的一天。
我正在尝试集成Jenkis / Bitbucket Server / Jira Server。 所有服务器都在SSL(专用PKI)下工作,启用了对等身份验证。
所以第一步是连接到BitBucket并且它是成功的。 我所做的一切都是将JVM_ARGS添加到jenkins
-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=/ssl/jenkins.p12
-Djavax.net.ssl.trustStore=/ssl/cacerts
-Djavax.net.ssl.keyStorePassword=JenkinsPassword1
-Djavax.net.ssl.trustStorePassword=changeit
所以Jenkins在BitBucket上进行了身份验证。
之后我试图将Jenkins连接到JIRA。而且没有成功。
Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_certificate
所有服务器都在同一CA链下部署了证书。 所有服务器都在信任存储中拥有该链。
所以我想知道我做错了什么? 我已经完成了SSL调试(javax.net.debug = ssl)。
在jira网站配置验证期间看到了以下字符串:
Found trusted certificate: //So there is no problem with truststore.
....
....
Warning: no suitable certificate found - continuing without client authentication // WHY??
*** Certificate chain
<Empty>
***
但是对于bitbucket服务器,它会选择正确的证书。 Double cheked一切,而且,bitbucket服务器工作正常。
一些代码挖掘我发现JIRA插件使用Attlasians Library,它使用Apache HTTP Client。我无法理解为什么HTTP客户端没有为JIRA Connection初始化密钥库。
可能有人遇到同样的问题?没有重构插件或库的任何解决方案?
欢迎任何建议。
我正在使用Jenkins 2.89.2和Jira Plugin 2.5 / Bitbucket Server 5.3 / Jira 7.63 詹金斯在码头工作。
PS:跳过证书验证插件不是一个选项。对等身份验证是强制性的。