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. Redis-Hash常用命令

    Redis-Hash常用命令 hset key field value 设置一个散列,但是在散列中一次只能设置一个属性,如果要批量设置多个属性,则需要使用 hmset命令 hget key field ...

  2. Scrapy框架之Spider模板 转

    一.安装scrapy 首先安装依赖库Twisted pip install (依赖库的路径) 在这个网址http://www.lfd.uci.edu/~gohlke/pythonlibs#twiste ...

  3. 入坑django2

    数据模型 关于时间的字段设置 add_date = models.DateTimeField('保存日期',default = timezone.now) mod_date = models.Date ...

  4. jmeter 压力测试tcp

    cmd下管理员执行 jmeter 界面 英文版 中文切换以后不能执行 最多跑905个线程 线程限制 查看结果数 界面会跑死 windows环境 注意:测试1万的tcp并发连接  大爷的 window最 ...

  5. ubuntu下mysql的用户添加、授权、取消授权

    一.添加用户 新增用户会有两种方式的,一种是使用create命令,另一种是直接回使用grant 命令 create user 名字@登陆地址 identified by "密码"; ...

  6. Python main()函数解析

    __main__ — Top-level script environment '__main__'是顶级代码执行的作用域的名字. 当一个模块从标准input, 一个脚本文件,或一个交互命令read读 ...

  7. hexo主题hexo-theme-yilia文章太长,截断按钮文字的实现

    文章太长,截断按钮文字不是通过配置文件_config.yml实现的,而是在文章内容里实现,在你想截断的文章位置加上 <!-- more --> 就可以实现了! 参考博客:hexo-them ...

  8. 最简单之安装hive

    一,安装模式介绍 Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. a.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) b.本地模式(本地安 ...

  9. 集合(五) TreeMap

    4.TreeMap SortedMap接口继承Map接口,是排序键值对的接口,实现排序的的方法是Comparator.而NavigableMap接口继承于SortedMap,新增了一些导航方法.而Tr ...

  10. 解决tomcat控制台乱码+清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间问题

    一.乱码 1.打开Tomcat的目录,找到conf文件夹,一般修改server.xml中的编码集,改为utf-8即可 2.若server.xml中编码设置的就是utf-8,可以修改logging.pr ...