当前位置: 首页 > 知识库问答 >
问题:

从amqp客户端到rabbitmq服务器的Java 8 SSL握手失败

艾子石
2023-03-14

请阅读上一篇文章的上下文。这个问题已经解决。重新创建队列并重新连接到rabbitMQ

现在,我正在尝试在rabbitmq服务器和rabbit客户端之间建立启用ssl的连接。我正在使用spring boot和spring cloud bus。没有SSL,一切都会很完美。

  • 用于运行java rabbit客户端

Java 1.8

sping-cloud-starter-bus-amqp=

Spring启动父=

javajavax.net.debug所有https.protocols

已尝试-Dhttps。CipherSuite=TLS\u ECDHE\u RSA\u以及\u AES\u 256\u GCM\u SHA384

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

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

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

TLS\U ECDHE\U RSA\U WITH\U AES\U 256\U GCM\U SHA384 TLSv1。1出现在不受支持的密码列表中,可能是rabbitmq服务器要求将其作为加密套件。

共有1个答案

仇承志
2023-03-14

问题是,由于密钥使用字段无效,Erlang OTP将证书作为坏证书拒绝。请遵循以下准则创建证书。http://erlang.org/documentation/doc-5.7.4/lib/ssl-3.10.7/doc/html/pkix_certs.html

 类似资料:
  • 问题内容: 尝试获取网页: 获取https://www.fl.ru/:远程错误:握手失败。 如果我尝试获取另一个HTTPS页面-一切正常。 问题答案: 该服务器仅支持一些弱密码: 如果确实必须连接到该服务器,则Go会支持列表中的最后一个密码,但默认情况下不支持。使用新的tls.Config创建一个客户端,并指定所需的密码:

  • 尝试获取网页: 收到https://www.fl.ru/:远程错误:握手失败。 如果我尝试获取另一个HTTPS页面,一切都可以。

  • 我有一个使用OpenSSL的C客户机,在服务器上的SSL_do_handshake()调用期间,使用服务器端验证失败的证书时,该客户机的测试失败。当应用程序使用TLS 1.2时,服务器上的SSL_do_handshake()故障将在客户端调用SSL_do_handshake()作为故障返回值时报告给客户端。 在将我的应用程序升级到OpenSSL 1.1.1和TLS 1.3时,我注意到验证错误仍在服

  • 我已经能够通过HTTP使用Eureka+ZUUL+Ribbon+Config Server设置并成功验证Spring cloud设置。 然而,当我尝试转移到HTTPS时,单个服务在HTTPS上运行良好,但Eureka客户端发现却失败了。

  • 我不知道我到底需要在哪里包含客户机证书。现在,我的第一个问题是我不信任服务器。我尝试使用默认的Java密钥库文件(cacerts),其中包含Thawte和Digicert,这些是我试图与之通信的服务器的根权限。我使用

  • 我正试图通过Java中的SSL套接字从客户端连接到服务器。客户端接收握手失败,服务器端没有共同的密码套件(www)。 服务器配置为SSL Tomcat 9,这里是连接器: 客户端是Java项目。密钥工具中双方都有证书。证书已从key工具导出,并在客户端通过key工具导入。因此,在客户端和服务器端,我们导入了server.cer.Tomcat在端口8443上启动,套接字使用端口443。 我尝试了什么