0

我正在努力在 Centos 7.2 和 OpenJDK (1.8.0_65) 上使用其嵌入式模式运行 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"

我遇到了错误 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

4

1 回答 1

0

我设法通过安装 bouncycastle 解决了这个问题。似乎 OpenJDK 没有附带 ECC 提供程序。

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

  2. 复制到/usr/lib/jvm/java-1.8.0-openjdk-<version>/jre/lib/ext

  3. 将提供程序添加到列表的末尾/usr/lib/jvm/java-1.8.0-openjdk-<version>/jre/lib/security/java.security

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

  4. 重新启用 ECC 算法,之前结束的行:, EC, ECDHE, ECDH

    jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768

  5. 重启詹金斯

于 2017-11-30T10:00:36.893 回答