HTTPS抓包

xaoc / 2024-10-29 / 原文

抓包工具

  • Burp Suite: 起个代理服务器,拦截和解析 http 请求
  • Proxifier: 给不支持设置代理的程序加上代理

抓包对象

浏览器

CA证书添加到系统就行

使用WinInet通信程序

直接添加CA到系统就能搞定

  • Proxifier+Fiddler 抓取PC客户端数据包
  • https://wiki.wireshark.org/TLS

Java程序

使用的自带的证书库,改系统的对他们没效果

  1. 给jdk添加CA

    • 给 JDK 添加信任 CA 的方法
    • 如何在jdk中导入CA证书
    • 见下文
  2. 使用启动参数跳过证书校验

    • -Djdk.internal.httpclient.disableHostnameVerification=true
    • -Dcom.sun.net.ssl.checkRevocation=false

    tips: 查看运行的java程序的jvm参数 jps -v

  3. extract-tls-secrets 获取密钥配合 Wireshark 使用

    • https://github.com/neykov/extract-tls-secrets

jdk添加CA

jdk的证书文件在 {JAVA_HOME}/lib/security/cacerts

  1. 检查要导入的证书是能够识别的

    keytool -v -printcert -file C:\Users\navi\Downloads\cacert.der
    
  2. 导入到jdk中

    keytool -importcert -alias cacert -keystore D:\xxx\lib\security\cacerts -storepass changeit -file C:\Users\navi\Downloads\cacert.der
    
  3. 检查是否导入成功

    keytool -keystore D:\xxx\lib\security\cacerts -storepass changeit -list | findstr cacert