Я отвечу на свой вопрос:
Прежде всего внутри ..../апач-ActiveMQ-5.11.1/CONF/activemq.xml:
<transportConnectors>
<transportConnector name="ssl" uri="ssl://0.0.0.0:61617?trace=true&needClientAuth=true"/>
</transportConnectors>
Не забывайте & amp; (без пробела), что блокировалось на стороне сервера. На странице activemq это не написано. Также не забудьте открыть порт. Здесь (61617)
еще внутри activemq.xml
<sslContext>
<sslContext keyStore="file:${activemq.base}/conf/amq-server.ks"
keyStorePassword="PASSWORD"
trustStore="file:${activemq.base}/conf/amq-server.ts"
trustStorePassword="PASSWORD" />
</sslContext>
перезагрузки JMS; На этот раз все должно быть в порядке. Теперь, когда ваша сторона сервера в порядке, давайте перейдем к клиенту.
Я сделал это в activemq ..../apache-activemq-5.11.1/conf: (следуйте инструкциям, именам, пропуску и т. Д.).
## Create a keystore for the broker SERVER
$ keytool -genkey -alias amq-server -keyalg RSA -keysize 2048 -validity 90 -keystore amq-server.ks
## Export the broker SERVER certificate from the keystore
$ keytool -export -alias amq-server -keystore amq-server.ks -file amq-server_cert
## Create the CLIENT keystore
$ keytool -genkey -alias amq-client -keyalg RSA -keysize 2048 -validity 90 -keystore amq-client.ks
## Import the previous exported broker's certificate into a CLIENT truststore
$ keytool -import -alias amq-server -keystore amq-client.ts -file amq-server_cert
## If you want to make trusted also the client, you must export the client's certificate from the keystore
$ keytool -export -alias amq-client -keystore amq-client.ks -file amq-client_cert
## Import the client's exported certificate into a broker SERVER truststore
$ keytool -import -alias amq-client -keystore amq-server.ts -file amq-client_cert
Тогда я скачал с помощью https://winscp.net/eng/index.php моих «Amq-client.ts» и «Amq-client.ks» от моего сервера на моем компьютере (я устр на окна и сервера на Linux).
Я использовал эти два файла в качестве источника в затмении. (Я не буду объяснять, как это сделать).
Наконец, в затмении мне пришлось изменить только одну вещь, которую я должен был заменить QueueConnectionFactory на ActiveMQSslConnectionFactory:
Так что я стер
QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx
.lookup("jms/ConnectionFactory");
И вместо того, что сделал:
ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory(url);
try {
connectionFactory.setTrustStore(CLIENT_TS_FILE);
connectionFactory.setTrustStorePassword("PASSWORD asked while TS file made");
connectionFactory.setKeyStore(CLIENT_KS_FILE);
connectionFactory.setKeyStorePassword("PASSWORD asked while KS file made");
} catch (Exception e) {
throw new MotorException(
"JMS Connection Failed (Trust store or key store weren't found) : ",
e);
}
Очень мало было в Интернете, по крайней мере, для activemq и ssl, это могло бы помочь кому-то.
Не могли бы вы отправить журналы? –
выложили весь след здесь, нужно ';' не означает проблему, должна быть отсутствующая точка с запятой где-то – Vihar
thx за вашу помощь: на самом деле на сайте activemq было написано: тогда как это было –