ActiveMQ с SSL и самоподписанными сертификатами; клиенты, не содержащие надлежащих сертификатов, могут подключиться к брокеру - PullRequest
0 голосов
/ 18 июня 2020

У меня есть несколько самоподписанных сертификатов для использования SSL / TLS через ActiveMQ и несколько клиентов Java. хранилище ключей брокера содержит root сертификат , а доверенное хранилище брокера содержит publi c ключ клиента. клиентское хранилище ключей содержит клиентский publi c и закрытый ключ, объединенные в файл PKCS12 , в соответствии с требованиями хранилища ключей, а клиентское хранилище доверенных сертификатов содержит root сертификат

Теперь эта конфигурация работает нормально. Моя проблема в том, что он работает нормально, даже когда я использую несовпадающие клиентские сертификаты и ключи, но сохраняю один и тот же сертификат root на стороне брокера и клиента. Соединение брокер-клиент не работает, только когда я использую несовпадающие сертификаты root. Я хотел бы знать, почему это происходит и что это за исправление, чтобы клиенты, использующие любую случайную пару ключей, чей publi c ключ не находится в хранилище доверенных сертификатов брокера, не могли подключиться к брокеру.

PS: это ActiveMQ версии 5.13.0 и TLS версии 1.2

1 Ответ

0 голосов
/ 18 июня 2020

Это в вики: https://cwiki.apache.org/confluence/display/ACTIVEMQ/How+do+I+use+SSL

Вам необходимо добавить needClientAuth=true в транспортном соединении на стороне сервера:

<broker>
  ...
  <transportConnectors>
    <transportConnector name="ssl" uri="ssl://0.0.0.0:61616?needClientAuth=true"/>  
  </<transportConnectors>

Требуется аутентификация клиента. нестандартная установка. Обычно транспорт SSL настраивается только с сертификатом сервера, а клиенты используют аутентификацию по имени пользователя и паролю.

Аутентификация клиента не обеспечивает никакого дополнительного шифрования. Это альтернатива для имени пользователя / паролей, но требует более серьезного обслуживания: продление сертификатов и т. Д. c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...