Rundeck 作业 API:javax.net.ssl.SSLHandshakeException:没有共同的密码套件
Rundeck job API: javax.net.ssl.SSLHandshakeException: no cipher suites in common
从 Rundeck 3.0.2 (API v30) 升级到 3.2.1 (API v34). Yum/RPM 安装,RHEL 7.
我在现有的工作安装后按照 Rundeck 文档和建模配置了 SSL。 SSL 通过网络工作正常,当我使用 curl 进入工作 REST API 时工作正常,但是当我们的 MuleSoft 应用程序进入 REST API 时,它失败并显示 handshake_failure:
%% Initialized: [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1539575645-26, fatal error: 40: no cipher suites in common
javax.net.ssl.SSLHandshakeException: no cipher suites in common
%% Invalidated: [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1539575645-26, SEND TLSv1.2 ALERT: fatal, description = handshake_failure
qtp1539575645-26, WRITE: TLSv1.2 Alert, length = 2
qtp1539575645-26, fatal: engine already closed. Rethrowing javax.net.ssl.SSLHandshakeException: no cipher suites in common
我确认 MuleSoft 信任 Rundeck 服务器的证书。以前我没有在我的 Rundeck ssl 配置中明确 including/excluding 任何密码套件,但我强迫 MuleSoft 使用特定套件,然后使用 -Drundeck.jetty.connector.ssl.includedCipherSuites=(insert suite here)
参数将该套件添加到 /etc/sysconfig/rundeckd,但是我们仍然收到 "no cipher suites in common" 错误。
将 -Djavax.net.debug=ssl
参数添加到 /etc/sysconfig/rundeckd
将握手详细信息添加到 service.log
。我可以看到 excluded 密码套件的列表,但我没有看到确认它包括我添加的密码套件。我确实在 运行 JVM 的进程详细信息中看到了参数。
这感觉像是 MuleSoft 方面的客户端问题,我们正在与供应商联系,但我发现很奇怪,当我明确包含客户端发送的密码套件时,它仍然看不到一个常见的。也许我使用 -Drundeck.jetty.connector.ssl.includedCipherSuites
不正确?
我正在测试的 /etc/sysconfig/rundeckd
文件目前如下所示:
export RUNDECK_WITH_SSL=true
export RDECK_HTTPS_PORT=4443
RDECK_JVM_OPTS="-Drundeck.jaaslogin=true \
-Djava.security.auth.login.config=/etc/rundeck/jaas-multiauth.conf \
-Dloginmodule.name=multiauth \
-Djavax.net.ssl.trustStore=/etc/rundeck/ssl/truststore \
-Djavax.net.ssl.trustStoreType=jks \
-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol \
-Drundeck.jetty.connector.ssl.includedCipherSuites=TLS_RSA_WITH_AES_256_GCM_SHA384 \
-Dorg.eclipse.jetty.util.ssl.LEVEL=DEBUG \
-Djavax.net.debug=ssl"
如有任何想法,我们将不胜感激!
问题是客户端 MuleSoft 要求 Rundeck 服务器的 SSL 证书具有 'KeyUsage=digitalSignature' 扩展名。添加此扩展程序解决了问题。
从 Rundeck 3.0.2 (API v30) 升级到 3.2.1 (API v34). Yum/RPM 安装,RHEL 7.
我在现有的工作安装后按照 Rundeck 文档和建模配置了 SSL。 SSL 通过网络工作正常,当我使用 curl 进入工作 REST API 时工作正常,但是当我们的 MuleSoft 应用程序进入 REST API 时,它失败并显示 handshake_failure:
%% Initialized: [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1539575645-26, fatal error: 40: no cipher suites in common
javax.net.ssl.SSLHandshakeException: no cipher suites in common
%% Invalidated: [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1539575645-26, SEND TLSv1.2 ALERT: fatal, description = handshake_failure
qtp1539575645-26, WRITE: TLSv1.2 Alert, length = 2
qtp1539575645-26, fatal: engine already closed. Rethrowing javax.net.ssl.SSLHandshakeException: no cipher suites in common
我确认 MuleSoft 信任 Rundeck 服务器的证书。以前我没有在我的 Rundeck ssl 配置中明确 including/excluding 任何密码套件,但我强迫 MuleSoft 使用特定套件,然后使用 -Drundeck.jetty.connector.ssl.includedCipherSuites=(insert suite here)
参数将该套件添加到 /etc/sysconfig/rundeckd,但是我们仍然收到 "no cipher suites in common" 错误。
将 -Djavax.net.debug=ssl
参数添加到 /etc/sysconfig/rundeckd
将握手详细信息添加到 service.log
。我可以看到 excluded 密码套件的列表,但我没有看到确认它包括我添加的密码套件。我确实在 运行 JVM 的进程详细信息中看到了参数。
这感觉像是 MuleSoft 方面的客户端问题,我们正在与供应商联系,但我发现很奇怪,当我明确包含客户端发送的密码套件时,它仍然看不到一个常见的。也许我使用 -Drundeck.jetty.connector.ssl.includedCipherSuites
不正确?
我正在测试的 /etc/sysconfig/rundeckd
文件目前如下所示:
export RUNDECK_WITH_SSL=true
export RDECK_HTTPS_PORT=4443
RDECK_JVM_OPTS="-Drundeck.jaaslogin=true \
-Djava.security.auth.login.config=/etc/rundeck/jaas-multiauth.conf \
-Dloginmodule.name=multiauth \
-Djavax.net.ssl.trustStore=/etc/rundeck/ssl/truststore \
-Djavax.net.ssl.trustStoreType=jks \
-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol \
-Drundeck.jetty.connector.ssl.includedCipherSuites=TLS_RSA_WITH_AES_256_GCM_SHA384 \
-Dorg.eclipse.jetty.util.ssl.LEVEL=DEBUG \
-Djavax.net.debug=ssl"
如有任何想法,我们将不胜感激!
问题是客户端 MuleSoft 要求 Rundeck 服务器的 SSL 证书具有 'KeyUsage=digitalSignature' 扩展名。添加此扩展程序解决了问题。