zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Asp.Net 编码和解码
    远程连接端口号改变的数据库服务器
    SqlServer:PIVOT操作
    细说Sql Server中的视图(上)(更新)
    ubuntu安装nginx和设置网站https访问
    批量修改git仓库地址脚本
    解决macOS升级之后每次使用ssh都要输入密码的问题
    hexo博客简易搭建教程
    dcoker入门,使用docker部署NodeJs应用
    腾讯云+校园扶持计划是bug还是福利
  • 原文地址:https://www.cnblogs.com/qq931399960/p/10968477.html
Copyright © 2011-2022 走看看