Jenkins 2和Atlassian Crowd(crowd2插件)与双向SSL的集成
我正在尝试使用Jenkin的群组2插件将AWS上运行的Jenkins(版本2.121.2)连接到Atlassian群组服务器(版本3.1.2)。群组服务器需要双向SSL身份验证 以下步骤:Jenkins 2和Atlassian Crowd(crowd2插件)与双向SSL的集成,ssl,jenkins,openssl,atlassian-crowd,Ssl,Jenkins,Openssl,Atlassian Crowd,我正在尝试使用Jenkin的群组2插件将AWS上运行的Jenkins(版本2.121.2)连接到Atlassian群组服务器(版本3.1.2)。群组服务器需要双向SSL身份验证 以下步骤: 将群组服务器的证书链导入到位于$Java_HOME/jre/lib/security/cacerts的Java信任存储中,以便Jenkins信任群组服务器 使用私钥和证书创建密钥库(JKS),以便在jenkins中进行客户端身份验证 修改jenkins启动参数(/etc/default/jenkins)以使用
JAVA_ARGS="-Djavax.net.debug=ssl -Djava.awt.headless=true
-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.keyStore=/var/lib/jenkins/identity.jks
-Djavax.net.ssl.keyStorePassword=changeit"
变体2:
# JVM Arguments
JAVA_ARGS="-Djavax.net.debug=ssl -Djava.awt.headless=true
-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts
-Djavax.net.ssl.trustStorePassword=changeit"
# Jenkins arguments
JENKINS_ARGS="--webroot=/var/cache/$NAME/war
--httpPort=$HTTPS_PORT
--httpsKeyStore=/var/lib/jenkins/identity.jks
--httpsKeyStorePassword=changeit"
在jenkins中填写插件配置部分的详细信息并尝试建立连接后,我在jenkins日志中收到一个握手失败
。日志中的信息
CN=cloud.company.com,OU=OUnit,O=Org,L=City,ST=State,C=Country
海龙石
警告:未找到合适的证书-继续
没有客户端身份验证
证书链
我不确定使用Crowd2插件是否可以实现这一点,或者我是否做错了什么。我对此进行了研究,但没有明确的答案,如果这是可能的或不可能的
非常感谢任何帮助/指导。因此,问题是由Crowd 2 Jenkins插件引起的。插件的第2版最近在3个月前发布,我正在使用它。但是,在将插件降级到1.8版之后,我能够通过群组服务器进行身份验证。您还没有发布SSL调试日志,因此很难判断这里发生了什么。另外,我不是詹金斯或亚特兰西或他们的配置方面的专家。但最底层的情况是,您有一个客户端证书和一个服务器证书。客户端的信任库需要配置为信任服务器证书。服务器的信任库需要配置为信任客户端证书。这意味着atlassian端的信任库需要包括签署客户端证书的CA。@JamesKPolk忘了提到,群组服务器已配置为信任客户端证书。您确定其配置正确吗?是的,我通过将证书和私钥导入chrome并连接到群组端点进行了验证。连接正常。我认为问题在于jenkins配置使用密钥库。
CN=cloud.company.com, OU=OUnit, O=Org, L=City, ST=State, C=Country
ServerHelloDone
Warning: no suitable certificate found - continuing
without client authentication
Certificate chain <Empty>