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

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

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

一、生成证书

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

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

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

2、第二步,导出visual cert

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

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

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

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

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

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

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

6、第六步,生成visualvm.truststore

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

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

二、修改程序启动脚本

#!/bin/bash

cd `dirname $`
java -jar -Djava.rmi.server.hostname=192.168.102.31 -Dcom.sun.management.jmxremote.port= -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= -Djavax.net.ssl.trustStore=./visual/java-app.truststore -Djavax.net.ssl.trustStorePassword= -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= -J-Djavax.net.ssl.trustStore=F:/visual/visualvm.truststore -J-Djavax.net.ssl.trustStorePassword=

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

VisualVM通过ssl远程连接JVM的更多相关文章

  1. JMX远程连接JVM

    -Dcom.sun.management.jmxremote :允许使用JMX远程管理 -Dcom.sun.management.jmxremote.port=9999 :JMX远程连接端口 -Dco ...

  2. VisualVM通过密码JMX远程连接JVM

    如果本地安装了JDK,则在${java.home}/bin/下可找到jvisualvm.exe,双击打开即可使用.否则,去官网下载一个,解压即可使用.现有一个springboot程序springboo ...

  3. VisualVM远程连接Tomcat

    最近项目已经要提测了,有时间来考虑一些性能上的事儿了.之前拜读过<深入理解java虚拟机>,只可惜当时功力尚浅,有些东西还是不太懂,而且应用场景也没有,所以借这次机会看看.当然了,这次并不 ...

  4. VisualVM远程连接Tomcat(转)

    转自:http://www.cnblogs.com/sunshine-2015/p/5547128.html VisualVM VisualVm是一个将很多JDK命令工具可视化的windows程序,直 ...

  5. 使用JCONSOLE远程监控JVM

    启动JMS服务 JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具.JConsole可以连接本地的Java程序,也可以连接远程的Java程序.由于是GUI的 ...

  6. Jprofiler远程监控JVM

    一.下载并安装 本地和远程服务器分别安装Jprofiler,下载地址 二.Windows远程连接JVM配置 1.打开Windows客户端Jprofiler 2.点Cancel 3.创建远程会话 4.添 ...

  7. 3 - JVM随笔分类(gc.log ,VisualVM插件介绍,VisualVM远程连接方式介绍)

    gc.log 354.2 KB 对于对应用的监控上可以使用Jdk自带的VisualVM来做可视化监控,可以查看当前服务应用进程的堆大小的走向,以及类的加载数量等,除此之外,VisualVM可以支持很多 ...

  8. visualVM远程监控JVM

    对于完全没用使用过visualVM的初学者 环境:Windows PC上使用visualVM监控远端JVM @@@@jstatd方式连接@@@@ 1.Windows安装jdk,$JAVA_HOME/b ...

  9. JMC监控(Windows上远程连接监控Linux服务器的JVM)

    Windows上远程连接监控Linux服务器的JVM:1.Linux服务器上配置:在Tomcat的tomcat-wms/bin/catalina.sh中添加CATALINA_OPTS="-X ...

随机推荐

  1. java 中 get post

    package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...

  2. vue项目默认IE以最高级别打开

    只需要在index.html加入 <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  3. Linux下MySql基本操作命令

    (1).切换至MySql目录下[假设MySql安装路径为:/home/mysql/bin] cd /home/mysql/bin (2).连接MySql mysql -u用户名 -p,回车后输入密码 ...

  4. 【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported

    1 自己打包Spring boot项目依赖了第三方的Phoenix jar包过大,导致启动后报错 参考了这篇博客:https://cloud.tencent.com/developer/ask/135 ...

  5. debian docker环境搭建

    环境(阿里): 登陆到系统: 我们主要看执行结果截图(所有命令都进行复制) 卸载旧版本: 使用 APT 安装: 这里 输入 y  然后等待执行结束 添加软件源的 GPG 密钥. 一开始我是手打的命令, ...

  6. dfs序+RMQ求LCA详解

    首先安利自己倍增求LCA的博客,前置(算不上)知识在此. LCA有3种求法:倍增求lca(上面qwq),树链剖分求lca(什么时候会了树链剖分再说.),还有,标题. 是的你也来和我一起学习这个了qwq ...

  7. java 实现链表

    public class MyList { Entry head; class Entry { Object data; Entry next; public Entry(Object data) { ...

  8. Javac可以编译,Java显示找不到或无法加载主类

    运行时候加入完整包名.

  9. k8s认证与授权

    认证用于身份鉴别,而授权则实现权限分派.k8s以插件化的方式实现了这两种功能,且分别存在多种可用的插件.另外,它还支持准入控制机制,用于补充授权机制以实现更精细的访问控制功能. 一.访问控制概述 ap ...

  10. vue中axios的二次封装

    我们做项目时,虽然axios也可以直接拿来用,但是对接口比较零散,不太好进行维护,也会产生大量的重复代码,所以我在这对axios进行了统一接口处理 第一步,先在src中的公共文件夹中如utils里新建 ...