Skip to main content

使用Whistle代理抓取JVM HTTP请求

· One min read
info

注意把以下命令中对应路径替换成自己的:

  • D:\programs\jdk1.8.0_192: JDK 1.8 的安装目录
  • C:\Users\user\Downloads\rootCA.cer: 下载到本地的whistle代理根证书

生成证书

方式一:生成keystore只有whistle根证书

D:\programs\jdk1.8.0_192\jre\bin\keytool.exe -importcert -alias whistle -keystore "C:\Users\user\Downloads\whistle.p12" -file "C:\Users\user\Downloads\rootCA.cer" -storepass whistle -storetype PKCS12 -noprompt

方式二:在JDK默认根证书基础上追加whistle根证书

D:\programs\jdk1.8.0_192\jre\bin\keytool.exe -importkeystore -srckeystore "D:\programs\jdk1.8.0_192\jre\lib\security\cacerts" -srcstoretype JKS -srcstorepass changeit -destkeystore "C:\Users\user\Downloads\whistle.p12" -deststoretype PKCS12 -deststorepass whistle

D:\programs\jdk1.8.0_192\jre\bin\keytool.exe -importcert -alias whistle -keystore "C:\Users\user\Downloads\whistle.p12" -file "C:\Users\user\Downloads\rootCA.cer" -storepass whistle -storetype PKCS12 -noprompt

使用

要使用上述keystore,抓取HTTPS请求,需要设置以下 JVM 启动参数:

-DproxySet=true
-DproxyHost=127.0.0.1
-DproxyPort=8899
-Djavax.net.ssl.trustStore="C:\Users\user\Downloads\whistle.p12"
-Djavax.net.ssl.trustStorePassword=whistle
-Djavax.net.ssl.trustStoreType=PKCS12
-Djavax.net.debug=ssl,handshake

Reference