我正在尝试使用JConsole监视我的WLP v8.5.5。
我的Liberty配置文件已启动并正在运行,并已正确配置SSL。 我还将monitor-1.0和restConnector-1.0配置为功能。
之后我从我的WLP中将restConnector.jar发送到我的机器并在我的机器上创建了一个密钥库,如上所述here
之后我尝试用这个命令启动JConsole:
jconsole -J-Djava.class.path="C:\Program Files\Java\jdk1.7.0_67\lib\jconsole.jar;
C:\Program Files\Java\jdk1.7.0_67\lib\tools.jar;
<whereIDownloaded>\restConnector.jar"
-J-Djavax.net.ssl.keyStore="<locationToCreated>\keystore.jks"
-J-Djavax.net.ssl.keyStorePassword=<password>
-J-Djavax.net.ssl.keyStoreType=jks
-J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
然而,当我尝试通过远程字符串连接到我的WLP时:
service:jmx:rest://<ip>:<httpsPort>/IBMJMXConnectorREST
作为凭证,我正在通过<administrator-role>
上配置的用户。
我收到JConsole错误说:
Secure connection failed. Retry insecurely?
我不明白为什么我看到这个错误,我没有看到任何日志,看看它失败的原因。 我的下一步是从WLP获取密钥库并在我的机器上尝试,但我认为这没有多大意义。
有没有人有任何关于我应该在哪里查找日志或者我做错了什么的建议? 提前谢谢!
答案 0 :(得分:1)
确保您没有localConnector-1.0
功能。如果你有,请删除它。您可以在Remote monitoring of Liberty with Health Center找到更多详细信息。虽然它讨论了Health Center连接,但我也在使用JConsole进行测试。
<强>更新强>
您可能正在使用不正确的参数调用控制台 - 它应该是trustStore
而不是keystore
,如下所示。并且开始使用从Liberty复制的key.jks
(因为您需要Liberty证书作为受信任的)
jconsole -J-Djava.class.path=%JAVA_HOME%/lib/jconsole.jar;
%JAVA_HOME%/lib/tools.jar;
%WLP_HOME%/clients/restConnector.jar
-J-Djavax.net.ssl.trustStore=key.jks
-J-Djavax.net.ssl.trustStorePassword=Liberty
-J-Djavax.net.ssl.trustStoreType=jks
答案 1 :(得分:0)
作为补充说明-您必须在server.xml中没有设置webAppSecurity
的{{1}}条目,因为这将导致JMX登录失败(例如,loginFormURL
是有问题的)。每个单独的WAR都需要设置自己的<webAppSecurity loginFormURL="login.html"/>
,而不必依赖于配置登录信息的任何全局方法。
`