从Rundeck 3.0.2(API v30)]升级到3.2.1(API v34)。 Yum / RPM安装,RHEL 7。
我在现有的正常安装后,按照Rundeck文档和建模配置了SSL。 SSL通过Web可以正常工作,当我使用curl调用作业REST API时,也可以正常工作,但是,当我们的MuleSoft应用程序访问REST API时,它会失败并带有handhake_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配置中明确包括/排除任何密码套件,但是我强迫MuleSoft使用特定套件,然后使用
-Drundeck.jetty.connector.ssl.includedCipherSuites=(insert suite here)
参数将该套件添加到/ etc / sysconfig / rundeckd中,但是我们仍然收到“没有共同的密码套件”错误。
将-Djavax.net.debug=ssl
参数添加到/etc/sysconfig/rundeckd
中,会将握手详细信息添加到service.log
中。我可以看到excluded
这看起来像是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"
任何想法都值得赞赏!
从Rundeck 3.0.2(API v30)升级到3.2.1(API v34)。 Yum / RPM安装,RHEL7。在现有工作安装之后,我根据Rundeck文档和建模配置了SSL。 SSL可以正常工作...
问题是客户端MuleSoft要求Rundeck服务器的SSL证书具有'KeyUsage = digitalSignature'扩展名。添加此扩展程序可以解决问题。