Java 虚拟机
使用一个脚本在 macOS 上将 Proxyman 根 CA 证书安装到所有 Java KeyStore 中,使 Proxyman 能够抓包 Java 和 Kotlin 应用的 HTTPS 流量。
要拦截 Java 应用的 HTTPS 流量,你需要执行额外的步骤,将 Proxyman CA 证书安装到 Java KeyStore 中。例如,以下场景都需要这些步骤:
- 拦截来自单元测试(使用 Java 或 Kotlin 编写)的流量
- 拦截来自 Java 应用或 CLI 的流量
1. 优势
- Proxyman 提供了一个脚本,只需点击一次即可自动将根证书安装到 Java KeyStore 中 ✅
- 支持
$JAVA_HOME - 支持
SDKMAN - 支持
/usr/libexec/java_home
2. 如何使用?
1. 在 Mac 上安装 Proxyman CA
在 Java 虚拟机上安装 Proxyman CA 之前,你必须先在 Mac 上正确安装它。
请参阅 macOS 指南:
如果你已经完成此步骤,可以跳过。
2. 将 Proxyman CA 安装到所有 Java KeyStore 中
- Certificate 菜单 -> Install Certificate on Java VMs -> Run Script...

运行 Java 证书脚本
- 脚本会尝试从 JAVA_HOME、SDKMAN 或 $(/usr/libexec/java_home) 中查找 KeyStore 的位置,并在可能的情况下安装 CA 证书。

Proxyman 会将证书安装到其能找到的所有 Java 信任库中
该脚本位于 /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Versions/A/Resources/install-certificates-java.sh
该脚本可能会请求自动化权限,因为 Proxyman 使用 AppleScript 以管理员权限在“终端”应用中运行它。
备选方案
- 如果你遇到以下错误,请参阅 @yauheniprakapenka 提供的解决方案:https://github.com/ProxymanApp/Proxyman/issues/569#issuecomment-723588490
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target