我已经从一台没有 SSL 的机器连接了一个 JMX 连接。但是,当我通过应用程序启动时没有任何错误地提供 SSL 时,VisualVM 无法通过指定端口建立 JMX 连接。以下是我用来从 App 端建立 JMX 连接的命令。
java -Dcom.sun.management.jmxremote.port=4444 -Dcom.sun.management.jmxremote.password.file="C:/Program Files/Java/jre1.8.0_25/lib/management/jmxremote.password "-Djavax.net.ssl.keyStore="C:/Program Files/Java/jdk1.8.0_25/bin/testkeystore"-Djavax.net.ssl.keyStorePassword=123456 -Dcom.sun.management.jmxremote.ssl=true -Dcom.sun.management.jmxremote.authenticate=true DemoApp
请指教。
最佳答案
尽管这是一个很老的问题,@Klara 的评论帮助我非常快速地解决了类似的问题。
- 首先,我需要为 jVisualVM 准备我的信任库:
keytool -exportcert -alias server -keystore/jkslocation/serverKS.jks -storepass storepassword -file/certificatelocation/certificate.cer
然后我将导出的证书添加到信任库: keytool -import -alias server -keystore/jkslocation/clientTS.jks -storepass storepassword -file/certificatelocation/certificate.cer -v
然后将 clientTS.jks 复制到运行 jVisualVM 的客户端机器上。
jVisualVM 使用信任库参数启动: ./jvisualvm -J-Djavax.net.ssl.trustStore=clientTS.jks -J-Djavax.net.ssl.trustStorePassword=clientTSPassword
jVisualVM 可以访问服务器 JMX 端口。
关于java - 无法从 VisualVM 通过 JMX+SSL 进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27545644/