SSL в HermesJMS
Я пытаюсь подключиться к поставщику сообщений через безопасное соединение, используя хранилище доверенных сертификатов, но не могу этого сделать.
Я могу подключаться небезопасно и публиковать сообщения без проблем, но в тот момент, когда я подключаюсь по безопасному протоколу, он не работает.
Я получил ошибку при получении JNDI
javax.jms.JMSException: Could not create InitialContext: JNDI setup failed on RNAME=nsps://server1.domain.internal:9001
at hermes.JNDIContextFactory.createContext(JNDIContextFactory.java:282)
at hermes.ext.HermesAdminSupport.discoverDestinationConfigs(HermesAdminSupport.java:441)
at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:82)
at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1126)
at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:77)
at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
at java.lang.Thread.run(Thread.java:745)
Он работает через Jmeter, используя то же хранилище доверенных сертификатов и пароль, так что все они действительны и верны.
Кажется, что при запуске Hermes через hermes.bat он не определяет параметры, которые я добавил для запуска, и поэтому он не использует склад доверенных сертификатов.
Я обновил скрипт и строка, которая запускает программу:
"C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw" -XX:NewSize=256m -Xmx1024m -Dhermes.home="%HERMES_HOME%" %HERMES_OPTS% -Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" -Dsun.java2d.noddraw=true -Dhermes="%HERMES_CONFIG%\hermes-config.xml" -Dhermes.libs="%HERMES_LIBS%"\ext hermes.browser.HermesBrowser -Djavax.net.ssl.trustStore="file:%HERMES_LIBS%\alexTruststore.jks" -Djavax.net.ssl.trustStorePassword=manage
Я пробовал все виды комбинаций с параметрами javax.net.ssl.trustStore(Пароль), но ни один из них не работал
Спасибо!
0 ответов
Это легко упустить; вам необходимо передать параметры доверенного хранилища перед объявлением основного класса. По сути, вы вызвали класс HermesBrowser с двумя аргументами, переданными его основному методу.
Вам нужно вызвать javaw.exe с правильными аргументами jks.
Например, это должно работать:
"C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw" ^
-Djavax.net.ssl.trustStore="file:%HERMES_LIBS%\alexTruststore.jks" ^
-Djavax.net.ssl.trustStorePassword=manage ^
-XX:NewSize=256m ^
-Xmx1024m ^
-Dhermes.home="%HERMES_HOME%" ^
%HERMES_OPTS% ^
-Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" ^
-Dsun.java2d.noddraw=true ^
-Dhermes="%HERMES_CONFIG%\hermes-config.xml" ^
-Dhermes.libs="%HERMES_LIBS%"\ext ^
hermes.browser.HermesBrowser