使用OpenJDK时无法通过HTTPS访问Jenkins

时间:2017-11-30 09:37:07

标签: jenkins https redhat-openjdk

我很难在带有OpenJDK(1.8.0_65)的Centos 7.2上使用嵌入式模式运行Jenkins 2.91(RPM版本)

但是当我通过HTTPS连接Firefox 38.1.0时,我收到“ssl_error_no_cypher_overlap”错误

使用Oracle JDK 1.8.0_144运行Jenkins时,只有OpenJDK才会出现此问题。

我尝试了以下各种选项,但没有成功

JENKINS_JAVA_OPTIONS="-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2"

我遇到了bug 1167153,但应用jdk.tls.disabledAlgorithms=EC,ECDHE,ECDH的修复程序似乎已在/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/lib/security/java.security中找到。

我也尝试使用openssl查看报告的协议

openssl s_client -connect localhost:8443
>>>
New, TLSv1/SSLv3, Cipher is AES256-SHA256
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : AES256-SHA256

我使用-Djavax.net.debug=ssl,handshake启用了日志记录但是这意味着报告了另一个错误 - ssl内部错误 - 显然是由于错误 - NoSuchAlgorithmException: EC AlgorithmParameters not available if SSL logs enabled

1 个答案:

答案 0 :(得分:0)

我设法通过安装bouncycastle来解决这个问题。似乎OpenJDK没有提供ECC提供商。

  1. https://www.bouncycastle.org/latest_releases.html下载bouncycastle提供商。例如bcprov-ext-jdk15on-158.jar

  2. 复制到toolset=msvc-14.0 boost-link=static dht=on encryption=on mutable-torrents=on crypto=openssl openssl-version=1.1 link=static runtime-link=static variant=debug,release i2p=on

  3. 在[{1}}

    列表的末尾添加提供程序

    /usr/lib/jvm/java-1.8.0-openjdk-<version>/jre/lib/ext

  4. 重新启用ECC算法,先前结束的行:/usr/lib/jvm/java-1.8.0-openjdk-<version>/jre/lib/security/java.security

    security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider

  5. 重新启动jenkins