• VisualVM通过ssl远程连接JVM


    VisualVM通过密码连接JVM实例如下

    https://www.cnblogs.com/qq931399960/p/10960573.html

    虽然设置了密码,但还是不够安全,只要获取到密码,在任何机器上都可以连接JVM。所以需要使用到SSL,SSL需要提供证书才能访问,安全性较高

    一、生成证书

    1、第一步,生成供客户端使用的visualvm.keystore

    keytool -genkeypair -alias visualvm -keyalg RSA -validity 365 -storetype pkcs12  -keystore visualvm.keystore  -storepass 123456 -keypass 123456 

    如下输入内容自定义填写即可

    2、第二步,导出visual cert

    keytool -exportcert -alias visualvm -storetype pkcs12 -keystore visualvm.keystore -file visualvm.cer -storepass 123456

    3、第三步,生成客户端使用的java-app.truststore

    keytool -importcert -alias visualvm -file visualvm.cer -keystore java-app.truststore -storepass 123456 -noprompt

    4、第四步,生成服务器程序运行所需的java-app.keystore

    keytool -genkeypair -alias java-app -keyalg RSA -validity 365 -storetype pkcs12 -keystore java-app.keystore -storepass 123456 -keypass 123456

    5、第五步,导出java-app的cert

    keytool -exportcert -alias java-app -storetype pkcs12 -keystore java-app.keystore -file java-app.cer -storepass 123456

    6、第六步,生成visualvm.truststore

    keytool -importcert -alias java-app -file java-app.cer -keystore visualvm.truststore -storepass 123456 -noprompt

     

    以上结束后,生成六个文件,其中四个后缀分别keystore和truststore文件是我们所需要的文件

     二、修改程序启动脚本

    #!/bin/bash
    
    cd `dirname $0`
    java -jar -Djava.rmi.server.hostname=192.168.102.31 -Dcom.sun.management.jmxremote.port=1566 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.registry.ssl=true -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -Djavax.net.ssl.keyStore=./visual/java-app.keystore -Djavax.net.ssl.keyStorePassword=123456 -Djavax.net.ssl.trustStore=./visual/java-app.truststore -Djavax.net.ssl.trustStorePassword=123456 -Xms100m -Xmx100m springbootdemo.jar &

    三、打开jvisualvm,连接JVM

    1、首先确定服务器程序已经启动

    2、进入windows中java安装路径下的bin目录下,摁住shift键,右键选择 “在此处打开命令窗口”,执行如下脚本(证书在linux上生成后,将其拿到了windows上的F:/visual/文件夹下,如果路径与如下脚本不一致,则需要修改),回车,此时将会弹出Java VisualVM界面

    jvisualvm -J-Djavax.net.ssl.keyStore=F:/visual/visualvm.keystore -J-Djavax.net.ssl.keyStorePassword=123456 -J-Djavax.net.ssl.trustStore=F:/visual/visualvm.truststore -J-Djavax.net.ssl.trustStorePassword=123456

    3、按照https://www.cnblogs.com/qq931399960/p/10960573.html中步骤连接JVM,连接时发现也会提示无法以ssl方式连接xxl,用户名和密码将以纯文本发送,点击是,我们发现在左侧主机下新加了一行记录,双击打开,即可监控数据

    4、假设没有证书,visualvm启动时不添加后面的整数参数是不能够连接到JVM的,比如我们关闭刚打开的visualvm,然后双击jvisualvm.exe打开visualvm,将弹出一个对话框

    也即是,如果没有证书,我们是无法连接1566这个启动时打开了ssl的JVM的

    SSL访问,比设置密码重要,即使不设置密码,在生产环境也要通过SSL访问JVM

  • 相关阅读:
    .NetCore Grpc 客服端 工厂模式配置授权
    DOCKER 拉取 dotnet 镜像太慢 docker pull mcr.microsoft.com too slow
    Introducing .NET 5
    VSCode 出现错误 System.IO.IOException: The configured user limit (128) on the number of inotify instances has been reached.
    Omnisharp VsCode Attaching to remote processes
    zookeeper3.5.5 centos7 完全分布式 搭建随记
    Hadoop2.7.7 centos7 完全分布式 配置与问题随记
    MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序
    SQL基础随记3 范式 键
    MySQL调优 优化需要考虑哪些方面
  • 原文地址:https://www.cnblogs.com/qq931399960/p/10968477.html
Copyright © 2020-2023  润新知