У меня есть приложение Java, настроенное с некоторыми самозаверяющими сертификатами, которое взаимодействует с ActiveMQ версии 5.13.0 через SSL / TLS версии 1.2. Соответствующие самоподписанные сертификаты находятся в соответствующих хранилищах ключей и доверенных хранилищах. Это соединение через TLS отлично работает на моем локальном компьютере Windows, клиенты без соответствующих сертификатов не могут связываться с брокером, а клиенты с соответствующими сертификатами могут.
Однако это не работает, когда то же самое код и хранилища ключей используются в экземпляре AWS EC2. У меня там установлена та же версия ActiveMQ, и я использую те же хранилища ключей и доверенных лиц на стороне брокера и клиента. Клиенты без настроенных сертификатов могут подключаться к брокеру и обмениваться данными.
Я хотел бы понять, нужно ли настроить SSL / TLS для ActiveMQ по-другому на машине Linux или есть что-то еще, что я я отсутствует.
Фрагменты из файла activemq.xml
, которые позволяют activemq использовать SSL / TLS:
<managementContext>
<managementContext createConnector="false"/>
</managementContext>
<sslContext>
<sslContext keyStore="file:${activemq.base}/conf/broker.ks"
keyStorePassword="changeit" trustStore="file:${activemq.base}/conf/broker.ts"
trustStorePassword="changeit"/>
</sslContext>
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxInactivityDuration=300000&wireFormat.maxFrameSize=104857600&jms.messagePrioritySupported=false"/>
<transportConnector name ="ssl" uri="ssl://0.0.0.0:61714?transport.enabledProtocols=TLSv1.2"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>