В настоящее время я пытаюсь подключиться к RabbitMQ через .NET, и при попытке обойти проверку SSL-сертификата я получаю следующую ошибку:
Unhandled Exception: RabbitMQ.Client.Exceptions.BrokerUnreachableException:
None of the specified endpoints were reachable ---> System.AggregateException:
One or more errors occurred. (Authentication failed, see inner exception.) --->
System.Security.Authentication.AuthenticationException: Authentication failed,
see inner exception. ---> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL
error - SSL_ERROR_SSL. ---> Interop+Crypto+OpenSslCryptographicException:
error:14090087:SSL routines:ssl3_get_server_certificate:cert length mismatch
На сервере отключены SSL2 и SSL3.Мы пытаемся использовать TLS1.2, который включен на сервере.
Это код, который я запускаю в Linux, и я проверил этот код на компьютере с Windows, и он сработал.Кажется, что проблема возникает только на машине Linux.Это Amazon Linux Distro, но эта проблема возникает и в Ubuntu.
public void Connection(bool useTLS){
ConnectionFactory factory = new ConnectionFactory();
factory.Port = 5671;
factory.UserName = "user";
factory.Password = "password";
factory.VirtualHost = "";
factory.HostName = "develop.example.com";
factory.Ssl.Enabled = true;
factory.Ssl.Version = System.Security.Authentication.SslProtocols.Tls12;
factory.Ssl.CertificateValidationCallback =
(sender, ConsumerTagConvention, chain, SslPolicyErrors) => { return true; };
factory.Ssl.AcceptablePolicyErrors |=
System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors |
System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch |
System.Net.Security.SslPolicyErrors.RemoteCertificateNotAvailable;
IConnection conn = factory.CreateConnection();
if (conn.IsOpen)
{
Console.WriteLine("Connected");
conn.Close();
}
else
Console.WriteLine("Failed");
}
Это фрагмент кода, используемого для подключения, как вы можете видеть, мы добавляем ошибки политики SSL, а также метод CertificateValidationCallBack
.Не уверен, что это просто проблема Linux и есть ли какая-то работа вокруг