Połączenie SSL/TLS z Rabbit MQ - certyfikat CA

0

Hej,

Mam takie zagadnienie - korzystam z RabbitMQ w połączeniu SSL/TLS u klienta. Chciałbym odtworzyć to u siebie na środowisku testowym, ale nie jestem w stanie, bo mój CA jest podpisany przez siebie samego i EasyNetQ wali wyjątkiem o niedostatecznym poziomie zabezpieczeń - zresztą poniekąd słusznie. Mam dwie możliwości:

  • Pozyskać prawilny certyfikat CA podpisany przez normalny urząd certyfikacji - tak jak u klienta - i wygenerować za pomocą niego klucz i certyfikat serwera - i pierwsze pytanie - czy można gdzieś za darmo albo za rozsądną opłatę pozyskać taki certyfikat? Ja korzystam z let's encrypt do stron, ale tam się tylko dostaje już podpisany klucz i certyfikat. Są rozwiązania komercyjne jak Thawte, ale to już są konkretne pieniądze, które nie mają uzasadnienia w przypadku dewelopmentu.
  • Zmusić EasyNetQ, żeby łyknął ten mój certyfikat, ale nie wiem jak - większość rozwiązań ma opcję ominięcia walidacji certyfikatu, ale nie mogę znaleźć na necie rozwiązania - może ktoś z Was to już przerabiał?

Byłbym wdzięczny za jakąkolwiek wskazówkę jeżeli chodzi o oba podejścia.

Krzysiek

0

Klient nie ma jakiegoś testowego klastra?

0
kal800 napisał(a):

Hej,

Mam takie zagadnienie - korzystam z RabbitMQ w połączeniu SSL/TLS u klienta. Chciałbym odtworzyć to u siebie na środowisku testowym, ale nie jestem w stanie, bo mój CA jest podpisany przez siebie samego i EasyNetQ wali wyjątkiem o niedostatecznym poziomie zabezpieczeń - zresztą poniekąd słusznie.

Dodaj swój certyfikat do systemowego trust store'a i powinno latać.

Mam dwie możliwości:
i pierwsze pytanie - czy można gdzieś za darmo albo za rozsądną opłatę pozyskać taki certyfikat? Ja korzystam z let's encrypt do stron, ale tam się tylko dostaje już podpisany klucz i certyfikat.

Czego więcej ci potrzeba?

  • Zmusić EasyNetQ, żeby łyknął ten mój certyfikat, ale nie wiem jak - większość rozwiązań ma opcję ominięcia walidacji certyfikatu, ale nie mogę znaleźć na necie rozwiązania - może ktoś z Was to już przerabiał?

Według dokumentacji opcjami SSL/TLS połączenia z rabbitem konfigurujesz na poziomie HostConfiguration przez właściwość Ssl, która z kolei pochodzi z paczki RabbitMq.Client. Dokumentacja rabbita mówi o możliwości wyłączenia weryfikacji certyfikatów przez aplikację kliencką - https://www.rabbitmq.com/ssl.html#dotnet-peer-verification

0
some_ONE napisał(a):
kal800 napisał(a):

Hej,

Mam takie zagadnienie - korzystam z RabbitMQ w połączeniu SSL/TLS u klienta. Chciałbym odtworzyć to u siebie na środowisku testowym, ale nie jestem w stanie, bo mój CA jest podpisany przez siebie samego i EasyNetQ wali wyjątkiem o niedostatecznym poziomie zabezpieczeń - zresztą poniekąd słusznie.

Dodaj swój certyfikat do systemowego trust store'a i powinno latać.

Dodałem certyfikat do keychain'a, ale nie pomogło. Chyba system mi robi pod górę.

Jeżeli chodzi o połączenie z Rabbitem jest OK - powinien ignorować walidację certów:

host.Ssl.CertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
host.Ssl.AcceptablePolicyErrors = System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch |
                                        System.Net.Security.SslPolicyErrors.RemoteCertificateNotAvailable |
                                        System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors;

po stronie brokera też jest w porządku:

 {ssl_options,
                        [{cacertfile, "/etc/rabbitmq/certs/ca.crt"},
                           {certfile,   "/etc/rabbitmq/certs/server.crt"},
                           {keyfile,    "/etc/rabbitmq/certs/server.key"},
                   {verify,               verify_none},
                   {fail_if_no_peer_cert, false}]},
                           {versions,['tlsv1.2']},

A błąd wywala mi system:

 ---> Interop+AppleCrypto+SslException: insufficient security

1 użytkowników online, w tym zalogowanych: 0, gości: 1