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 -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的更多相关文章
- JMX远程连接JVM
-Dcom.sun.management.jmxremote :允许使用JMX远程管理 -Dcom.sun.management.jmxremote.port=9999 :JMX远程连接端口 -Dco ...
- VisualVM通过密码JMX远程连接JVM
如果本地安装了JDK,则在${java.home}/bin/下可找到jvisualvm.exe,双击打开即可使用.否则,去官网下载一个,解压即可使用.现有一个springboot程序springboo ...
- VisualVM远程连接Tomcat
最近项目已经要提测了,有时间来考虑一些性能上的事儿了.之前拜读过<深入理解java虚拟机>,只可惜当时功力尚浅,有些东西还是不太懂,而且应用场景也没有,所以借这次机会看看.当然了,这次并不 ...
- VisualVM远程连接Tomcat(转)
转自:http://www.cnblogs.com/sunshine-2015/p/5547128.html VisualVM VisualVm是一个将很多JDK命令工具可视化的windows程序,直 ...
- 使用JCONSOLE远程监控JVM
启动JMS服务 JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具.JConsole可以连接本地的Java程序,也可以连接远程的Java程序.由于是GUI的 ...
- Jprofiler远程监控JVM
一.下载并安装 本地和远程服务器分别安装Jprofiler,下载地址 二.Windows远程连接JVM配置 1.打开Windows客户端Jprofiler 2.点Cancel 3.创建远程会话 4.添 ...
- 3 - JVM随笔分类(gc.log ,VisualVM插件介绍,VisualVM远程连接方式介绍)
gc.log 354.2 KB 对于对应用的监控上可以使用Jdk自带的VisualVM来做可视化监控,可以查看当前服务应用进程的堆大小的走向,以及类的加载数量等,除此之外,VisualVM可以支持很多 ...
- visualVM远程监控JVM
对于完全没用使用过visualVM的初学者 环境:Windows PC上使用visualVM监控远端JVM @@@@jstatd方式连接@@@@ 1.Windows安装jdk,$JAVA_HOME/b ...
- JMC监控(Windows上远程连接监控Linux服务器的JVM)
Windows上远程连接监控Linux服务器的JVM:1.Linux服务器上配置:在Tomcat的tomcat-wms/bin/catalina.sh中添加CATALINA_OPTS="-X ...
随机推荐
- java 中 get post
package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...
- vue项目默认IE以最高级别打开
只需要在index.html加入 <meta http-equiv="X-UA-Compatible" content="IE=Edge">
- Linux下MySql基本操作命令
(1).切换至MySql目录下[假设MySql安装路径为:/home/mysql/bin] cd /home/mysql/bin (2).连接MySql mysql -u用户名 -p,回车后输入密码 ...
- 【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
1 自己打包Spring boot项目依赖了第三方的Phoenix jar包过大,导致启动后报错 参考了这篇博客:https://cloud.tencent.com/developer/ask/135 ...
- debian docker环境搭建
环境(阿里): 登陆到系统: 我们主要看执行结果截图(所有命令都进行复制) 卸载旧版本: 使用 APT 安装: 这里 输入 y 然后等待执行结束 添加软件源的 GPG 密钥. 一开始我是手打的命令, ...
- dfs序+RMQ求LCA详解
首先安利自己倍增求LCA的博客,前置(算不上)知识在此. LCA有3种求法:倍增求lca(上面qwq),树链剖分求lca(什么时候会了树链剖分再说.),还有,标题. 是的你也来和我一起学习这个了qwq ...
- java 实现链表
public class MyList { Entry head; class Entry { Object data; Entry next; public Entry(Object data) { ...
- Javac可以编译,Java显示找不到或无法加载主类
运行时候加入完整包名.
- k8s认证与授权
认证用于身份鉴别,而授权则实现权限分派.k8s以插件化的方式实现了这两种功能,且分别存在多种可用的插件.另外,它还支持准入控制机制,用于补充授权机制以实现更精细的访问控制功能. 一.访问控制概述 ap ...
- vue中axios的二次封装
我们做项目时,虽然axios也可以直接拿来用,但是对接口比较零散,不太好进行维护,也会产生大量的重复代码,所以我在这对axios进行了统一接口处理 第一步,先在src中的公共文件夹中如utils里新建 ...