Maven如何通过Fiddler抓取访问包仓库的HTTPS流量
Maven抓包Fiddler完整配置方案
要抓取Maven向包仓库发起的请求,核心需要完成两项配置,具体操作如下:
1. Fiddler根证书导入Java信任库
Maven基于Java运行,默认不信任Fiddler的自签名证书,会触发SSL握手失败报错,需手动导入证书:
- 从Fiddler导出根证书:打开Fiddler,依次进入
Tools > Options > HTTPS > Actions > Export Root Certificate to Desktop,导出文件默认名为FiddlerRoot.cer - 找到当前Maven绑定的Java Home路径,进入对应目录下的
jre/lib/security文件夹
注意:如果环境安装了多个JDK版本,需确认Maven实际绑定的JDK路径,避免导入到错误的信任库 - 执行导入命令,Java默认信任库密码为
changeit:
keytool -importcert -file 你的FiddlerRoot.cer本地路径 -alias fiddler -keystore cacerts
- 出现信任确认提示时输入
y,导入完成后可执行keytool -list -alias fiddler -keystore cacerts验证导入结果
2. 配置Maven settings.xml代理参数
需要让Maven的请求走Fiddler的本地代理,默认Fiddler监听端口为8888:
- 打开Maven配置文件
settings.xml,可选择修改全局配置(Maven安装目录下conf/settings.xml)或用户级配置(用户目录下.m2/settings.xml) - 在
<proxies>节点下新增如下代理配置:
<proxy> <id>fiddler</id> <active>true</active> <protocol>http</protocol> <host>127.0.0.1</host> <port>8888</port> <!-- 不需要走代理的域名可配置在这里,多个域名用|分隔 --> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy>
注意:如果Fiddler修改了默认监听端口,需要把配置中的8888替换为实际端口
- 保存配置后重启正在运行的Maven进程,执行任意依赖拉取命令即可在Fiddler中捕获到对应的包仓库请求
内容的提问来源于stack exchange,提问作者Harald S. Hanssen
相关产品推荐
相关产品推荐

