【问题标题】:rabbitmq, Java client works via SSL, but .NET one does notrabbitmq,Java 客户端通过 SSL 工作,但 .NET 不支持
【发布时间】:2018-10-17 07:22:19
【问题描述】:

我是 rabbitmq 的新手,但我必须连接到远程代理才能发送和接收消息。远程服务器超出了我的控制范围,几乎不可能从它的团队那里得到答案。不过,我可以使用地址、端口、虚拟主机和用户凭据。服务器使用 TLS v1.2。 问题是我无法使用 .NET 客户端建立与服务器的连接。客户端是“rabbitmq.client.5.1.0”,.NET Framework 4.5.1 和 VS 2017。我的代码是:

public bool Start() {
  try {
    var f = new ConnectionFactory();
    f.UserName = "TestUser";
    f.Password = "TestPwd";
    f.HostName = "x.x.x.x";
    f.Port = 5673;
    f.VirtualHost = "TestVH";

    f.Ssl.Version = SslProtocols.Tls12;
    f.Ssl.Enabled = true;
    f.Ssl.AcceptablePolicyErrors = SslPolicyErrors.RemoteCertificateChainErrors
        | SslPolicyErrors.RemoteCertificateNameMismatch
        | SslPolicyErrors.RemoteCertificateNotAvailable;
    var c = f.CreateConnection();
  } catch( Exception e ) {
    throw e;
  }
}

它抛出一个异常,最里面的是:

身份验证失败,因为远程方已关闭传输流。

(Wireshark capture).

如果我使用 Java (1.8, amqp-client-4.0.2),我可以成功连接到服务器。

public static void main( String[] args ) throws Exception{
  ConnectionFactory factory = new ConnectionFactory();
  factory.setHost("x.x.x.x");
  factory.setPort(5673);
  factory.setUsername( "TestUser" );
  factory.setPassword( "TestPwd" );
  factory.setVirtualHost( "TestVH" );

  factory.useSslProtocol("TLSv1.2");
  Connection conn = factory.newConnection();
}

Wireshark capture

我想使用 C# 来完成这项工作,但我无法解决这个问题。任何帮助将不胜感激!

【问题讨论】:

  • 如果您尝试使用 Tls11 或 Tls10 会怎样?
  • 它给我带来了同样的结果 - 远程服务器关闭连接 =\
  • 如果您可以从 RabbitMQ 获取记录的消息,那可能会有所帮助。否则,我建议关注TLS troubleshooting guide。我想知道的是Java连接与.NET连接使用的是什么密码。这可能就是区别。使用openssl s_client 命令获取该信息。
  • 谢谢你的提示,我会调查的!

标签: java c# .net ssl rabbitmq


【解决方案1】:

尝试更改此行:

f.Ssl.Version = SslProtocols.Tls12;

到这里:

f.Ssl.Version = SslProtocols.Tls12 | SslProtocols.Ssl3 | SslProtocols.Tls11 | SslProtocols.Ssl2;

如果可行,那么你缩小范围

【讨论】:

  • 我尝试了您的建议,但结果相同。我对 Java 很好奇,似乎它使用了其他一些设置(对于 ssl?)。它的消息比一个 C# 发送的要长。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 2020-08-11
  • 2018-04-12
  • 2010-09-17
  • 2011-02-09
相关资源
最近更新 更多