无法使用 amqps 连接到 RabbitMQ 代理
Unable to connect to RabbitMQ broker using amqps
您好,我想使用 amqps 连接到 rabbitmq 代理,但它似乎不起作用。
ConnectionFactory cf = new ConnectionFactory();
Uri uri = new Uri("amqps://localhost:5671");
cf.Uri = uri;
我已经启用了插件 "rabbitmq_auth_mechanism_ssl" 并将 rabbitmq.conf 配置为以下内容:
management.tcp.port = 15672
management.ssl.port = 15671
management.ssl.cacertfile = C:\CA\ca.cert.pem
management.ssl.certfile = C:\CA\serca.cert.pem
management.ssl.keyfile = C:\CA\private.key.pem
listeners.ssl.1 = 5671
ssl_options.cacertfile = C:\CA\ca.cert.pem
ssl_options.certfile = C:\CA\serca.cert.pem
ssl_options.keyfile = C:\CA\private.key.pem
ssl_options.password = secret
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
auth_mechanisms.1 = EXTERNAL
auth_mechanisms.2 = PLAIN
auth_mechanisms.3 = AMQPLAIN
我需要再次启用另一个插件才能正常工作吗?
如果有人能给我一些关于使用 amqps 连接到 RabbitMQ 代理的指导/提示,我将不胜感激。
啊,我找到了解决办法。我把答案贴在这里,希望对大家有帮助:
在 C# 中:
ConnectionFactory cf = new ConnectionFactory();
Uri uri = new Uri("amqps://sample:sample@localhost");
cf.Port = AmqpTcpEndpoint.DefaultAmqpSslPort;
cf.Uri = uri;
var sslOptions = new SslOption
{
Enabled = true,
ServerName = "server cn",
AcceptablePolicyErrors = System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors |
System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch |
System.Net.Security.SslPolicyErrors.RemoteCertificateNotAvailable,
};
cf.Ssl = sslOptions;
在rabbitmq.conf
management.tcp.port = 15672
management.ssl.port = 15671
management.ssl.cacertfile = C:\CA\ca.cert.pem
management.ssl.certfile = C:\CA\serca.cert.pem
management.ssl.keyfile = C:\CA\private.key.pem
listeners.ssl.1 = 5671
ssl_options.cacertfile = C:\CA\ca.cert.pem
ssl_options.certfile = C:\CA\serca.cert.pem
ssl_options.keyfile = C:\CA\private.key.pem
ssl_options.password = secret
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false <<<< need to set this to false.
auth_mechanisms.1 = EXTERNAL
auth_mechanisms.2 = PLAIN
auth_mechanisms.3 = AMQPLAIN
参考:
https://www.squaremobius.net/amqp.node/ssl.html
http://rabbitmq.1065348.n5.nabble.com/C-client-connect-using-SSL-td31134.html
您好,我想使用 amqps 连接到 rabbitmq 代理,但它似乎不起作用。
ConnectionFactory cf = new ConnectionFactory();
Uri uri = new Uri("amqps://localhost:5671");
cf.Uri = uri;
我已经启用了插件 "rabbitmq_auth_mechanism_ssl" 并将 rabbitmq.conf 配置为以下内容:
management.tcp.port = 15672
management.ssl.port = 15671
management.ssl.cacertfile = C:\CA\ca.cert.pem
management.ssl.certfile = C:\CA\serca.cert.pem
management.ssl.keyfile = C:\CA\private.key.pem
listeners.ssl.1 = 5671
ssl_options.cacertfile = C:\CA\ca.cert.pem
ssl_options.certfile = C:\CA\serca.cert.pem
ssl_options.keyfile = C:\CA\private.key.pem
ssl_options.password = secret
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
auth_mechanisms.1 = EXTERNAL
auth_mechanisms.2 = PLAIN
auth_mechanisms.3 = AMQPLAIN
我需要再次启用另一个插件才能正常工作吗?
如果有人能给我一些关于使用 amqps 连接到 RabbitMQ 代理的指导/提示,我将不胜感激。
啊,我找到了解决办法。我把答案贴在这里,希望对大家有帮助:
在 C# 中:
ConnectionFactory cf = new ConnectionFactory();
Uri uri = new Uri("amqps://sample:sample@localhost");
cf.Port = AmqpTcpEndpoint.DefaultAmqpSslPort;
cf.Uri = uri;
var sslOptions = new SslOption
{
Enabled = true,
ServerName = "server cn",
AcceptablePolicyErrors = System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors |
System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch |
System.Net.Security.SslPolicyErrors.RemoteCertificateNotAvailable,
};
cf.Ssl = sslOptions;
在rabbitmq.conf
management.tcp.port = 15672
management.ssl.port = 15671
management.ssl.cacertfile = C:\CA\ca.cert.pem
management.ssl.certfile = C:\CA\serca.cert.pem
management.ssl.keyfile = C:\CA\private.key.pem
listeners.ssl.1 = 5671
ssl_options.cacertfile = C:\CA\ca.cert.pem
ssl_options.certfile = C:\CA\serca.cert.pem
ssl_options.keyfile = C:\CA\private.key.pem
ssl_options.password = secret
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false <<<< need to set this to false.
auth_mechanisms.1 = EXTERNAL
auth_mechanisms.2 = PLAIN
auth_mechanisms.3 = AMQPLAIN
参考: https://www.squaremobius.net/amqp.node/ssl.html
http://rabbitmq.1065348.n5.nabble.com/C-client-connect-using-SSL-td31134.html