SSL в HermesJMS - PullRequest
       36

SSL в HermesJMS

0 голосов
/ 05 октября 2018

Я пытаюсь подключиться к поставщику сообщений через безопасное соединение, используя хранилище доверенных сертификатов, но не могу этого сделать.

Я могу подключиться небезопасно и публиковать сообщения без проблем, но в тот момент, когда я подключаюсь череззащищенный протокол не работает.

Я получил ошибку при получении 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 (Password), но ни один из них не сработал

Спасибо!

1 Ответ

0 голосов
/ 10 июля 2019

Это легко пропустить;вам нужно передать параметры хранилища доверенных сертификатов перед объявлением основного класса.По сути, вы вызвали класс HermesBrowser с двумя аргументами, переданными его методу main.

Вам нужно было вызвать 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
...