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' 扩展名。添加此扩展程序解决了问题。