HermesJMS中的SSL

时间:2018-10-05 16:21:30

标签: queue jms jndi truststore hermes-jms

我正在尝试使用信任库通过安全连接连接到消息传递提供程序,但无法这样做。

我可以不安全地连接并发布消息而没有问题,但是当我通过安全协议进行连接时,它不起作用。

我在检索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.bat启动Hermes时,未检测到我已添加到启动中的参数,因此未使用信任库

我已经更新了脚本,并且启动程序的行是:

"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 :(得分:0)

这很容易错过;您需要在声明主类之前传递truststore参数。本质上,您已经通过传递给main方法的两个参数调用了HermesBrowser类。

您想要的是使用正确的jks参数调用javaw.exe。

例如,这应该起作用:

"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