跳到主要内容

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...
Proxyman Certificate 菜单,展开 Install Certificate on Java VMs 并高亮 Run Script

运行 Java 证书脚本

  • 脚本会尝试从 JAVA_HOME、SDKMAN 或 $(/usr/libexec/java_home) 中查找 KeyStore 的位置,并在可能的情况下安装 CA 证书。
Proxyman Java 脚本将证书安装到 Java cacerts KeyStore 中的终端输出

Proxyman 会将证书安装到其能找到的所有 Java 信任库中

信息

该脚本位于 /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Versions/A/Resources/install-certificates-java.sh

信息

该脚本可能会请求自动化权限,因为 Proxyman 使用 AppleScript 以管理员权限在“终端”应用中运行它。

备选方案​

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