0

请阅读上一篇文章的上下文。那个问题就解决了。 重新创建队列并重新连接rabbitMQ

现在,我正在尝试在 rabbitmq 服务器和 rabbit 客户端之间设置启用 ssl 的连接。我正在使用带有弹簧云总线的弹簧靴。没有 SSL,一切都完美无缺。

  • 用它来运行 java rabbit 客户端。

> 版本

Java 1.8

spring-cloud-starter-bus-amqp => 1.3.1.RELEASE

Spring Boot 父级 => 1.5.9.RELEASE

sudo java -Djavax.net.debug=all -Dhttps.protocols=TLSv1 -jar target/rabbit-client-0.0.1-SNAPSHOT.jar

也试过 -Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • 我使用了以下命令,它的结果为已验证 [ok]。这告诉我rabbitmq 服务器已正确配置证书。
openssl s_client -connect my.rabbitmq.com:5671 -cert nonprod.crt -key nonprod.key -CAfile nonprod-chain.crt -tls1 -prexit
  • 我可以从 chrome 浏览器访问 rabbitmq managemnet 门户,并且它信任证书,因为我在钥匙串中添加了它信任。
  • 我已将证书和 CA 证书添加到 java 密钥库并信任它。
  • Amqp 客户端无法建立连接并在启用 SSL 时失败。

链接以查看错误和调试日志

见下文失败。

这是我认为可能存在但不确定的问题。

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLSv1.1 出现在不受支持的密码列表中,可能是 rabbitmq 服务器要求将其作为加密套件。

不支持 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ????

4

1 回答 1

0

The issue was Erlang OTP was rejecting the certificate as bad certificate due to invalid Key Usage fields. follow these guidelines for creating the certs. http://erlang.org/documentation/doc-5.7.4/lib/ssl-3.10.7/doc/html/pkix_certs.html

于 2018-04-30T17:06:46.850 回答