当前位置:  开发笔记 > 后端 > 正文

如何使用IntelliJ连接Charles?

如何解决《如何使用IntelliJ连接Charles?》经验,为你挑选了1个好方法。

我正在使用IntelliJ用Java编写Web应用程序,我想使用Charles监视我的所有http/https请求,但是默认情况下我的请求没有显示,所以我怀疑需要设置一些代理设置双方.有人可以详细解释一下吗?非常感谢提前!



1> Gábor Pintér..:

好的,我已经设法了解问题并解决了问题.

JVM代理

第一个问题是我的请求主要来自JVM,因此我们必须首先代理它们,这意味着必须进行JVM配置,可以作为参数提供(可以通过CLI或VM选项提供)在IntelliJ)像这样:

-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888

HTTPS

下一个问题是,除此代理外,还必须提供证书才能捕获和查看解密的https请求.

我们可以通过转到工具>选项> HTTPS>解密HTTPS流量来生成Fiddler证书.生成的证书可以从http://127.0.0.1:8888/下载.

使用JVM的keytool,我们可以使用我们的证书创建一个新的密钥库,我们稍后可以将其用作JVM配置来信任资源.为此,请运行以下命令(确保为keytool和cert提供正确的路径):

"C:\Program Files\Java\jdk1.8.0_144\bin\keytool.exe -import -file C:\Users\Username\Desktop\FiddlerRoot.cer -keystore FiddlerKeystore -alias Fiddler 提供密码后,将生成密钥库C:\Windows\System32.

现在,我们可以通过传递以下内容将此密钥库和密码提供给JVM:

-Djavax.net.ssl.trustStore="C:\Windows\System32\FiddlerKeystore" -Djavax.net.ssl.trustStorePassword="yourKeyStorePassword"

这个答案基于以下博客文章和StackOverflow答案:

使用Fiddler从Java应用程序捕获HTTPS流量

如何使用fiddler捕获https,在java中


这与Charles Proxy相同:设置JVM代理(`-DproxySet = true -DproxyHost = 127.0.0.1 -DproxyPort = 8888`),然后在Charles> Help> SSL Proxying> Instal Charles Root Certificate中安装Charles Certificates.
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有