Commit Graph

1027 Commits

Author SHA1 Message Date
avwo 777bcf69ba feat: handle client/server sent events 2026-06-14 13:36:19 +08:00
Frank 14a9407b4a fix: add authorityKeyIdentifier extension to fix Python SSL verification error
## 问题描述

Python 3.13+ 配合 urllib3 2.6.3 使用 Whistle 作为 HTTPS 代理时,SSL 证书验证失败:

```
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: Missing Authority Key Identifier
```

## 根本原因

OpenSSL 3.x 和 Python 的 urllib3 对证书链验证更加严格。Whistle 动态生成的服务器证书只包含 `subjectAltName` 扩展,缺少 `authorityKeyIdentifier` 等必要扩展。

## 解决方案

为生成的证书添加完整的 X.509v3 扩展:
- `basicConstraints` (CA:FALSE)
- `keyUsage` (digitalSignature, keyEncipherment)
- `extKeyUsage` (serverAuth, clientAuth)
- `authorityKeyIdentifier` (从 ROOT_CRT 的 SKI 获取)

## 测试环境

- Python 3.13.5
- urllib3 2.6.3
- OpenSSL 3.5.5
- Node.js v24.14.0
- Whistle v2.10.2

此修复确保 Python 严格的 SSL 验证在使用 Whistle 进行 HTTPS 抓包时能够正常通过。
2026-03-31 15:26:04 +08:00
avwo 40a892cfb0 refactor: refine code 2026-03-21 22:37:04 +08:00
avwo b67ec50a0d refactor: refine code 2026-02-07 22:15:56 +08:00
avwo 007df8395e feat: allow disable custom certs 2026-02-01 23:29:45 +08:00
avwo 6ff4b95c7c refactor: refine code 2026-02-01 20:28:08 +08:00
avwo c4740f3ef2 refactor: refine code 2026-01-31 07:41:12 +08:00
avwo 5c808c7748 refactor: refine code 2026-01-10 00:27:21 +08:00
avwo c0812345a5 refactor: refine code 2025-12-27 00:07:12 +08:00
avwo d5007f3cd9 refactor: refine code 2025-12-21 21:53:22 +08:00
avwo 10f7c7730f fix: https://github.com/avwo/whistle/issues/1081#issuecomment-3500994521 2025-11-09 22:57:39 +08:00
avwo cc12e4e669 refactor: refine code 2025-09-14 23:10:09 +08:00
avwo c8b37391d9 feat: xxxFilter://chance:0.5 & handle EPROTO 2025-08-23 00:35:03 +08:00
avwo 7415f6005b refactor: refine code 2025-08-09 16:26:22 +08:00
avwo e92d902baa fix: https://github.com/avwo/whistle/issues/1200 2025-06-21 23:01:05 +08:00
avwo 9f5cbfedb4 refactor: refine code 2025-06-14 00:06:05 +08:00
avwo 1b77a5d59c feat: install plugins 2025-05-31 07:59:12 +08:00
avwo 6b619613f6 refactor: refine code 2025-05-01 11:07:50 +08:00
avwo c3839a4d90 feat: install plugins 2025-04-03 19:43:47 +08:00
avwo 249ec32748 feat: refine http2 settings 2025-04-03 19:43:07 +08:00
avwo c2282bf8b7 fix: https://github.com/avwo/whistle/pull/1192 2025-01-20 18:15:00 +08:00
avwo 53ec0394ce refactor: refine code 2025-01-13 20:35:35 +08:00
avwo eae6ce353d fix: https://github.com/avwo/whistle/pull/1192 2025-01-13 20:35:02 +08:00
avwo 6854677161 feat: set server.requestTime = 0 2024-12-23 20:01:49 +08:00
avwo 92f72eb5b8 feat: disable://keepH2Session 2024-12-06 22:40:54 +08:00
avwo aa4af22135 fix: https://github.com/avwo/whistle/issues/1173 2024-12-06 22:19:10 +08:00
avwo 7be53e28bd fix: https://github.com/avwo/whistle/issues/1081 2024-12-06 20:27:32 +08:00
avwo f91f572a51 feat: delete://reqBody.xxx|resBody.xxx 2024-11-15 22:56:50 +08:00
avwo 1140b7aaf9 feat: add composer tag 2024-10-12 00:09:30 +08:00
avwo 0d0b2c54ec feat: refine capture ip request 2024-09-21 00:32:32 +08:00
avwo 99fac19daf feat: join ip&port 2024-08-31 22:59:43 +08:00
avwo 9c2c4d1607 feat: enable://captureIp 2024-08-03 00:42:44 +08:00
avwo aa3850adb9 feat: refine https request by ip 2024-08-03 00:14:58 +08:00
avwo 2fccd78e82 fix: captureError 2024-07-26 20:58:21 +08:00
avwo 985f2dc48a feat: allow to update root ca 2024-07-19 21:58:51 +08:00
avwo d79d8549cb feat: delete://query.xxx 2024-06-10 01:13:49 +08:00
avwo e19218d244 feat: add SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 2024-04-22 22:36:02 +08:00
avwo 7db11ba428 feat: enable://abortRes 2024-04-04 00:33:31 +08:00
avwo d3c613e4cf feat: enable://requestWithMatchedRules enable://responseWithMatchedRules 2024-03-22 21:27:56 +08:00
avwo 6b3fa21be4 feat: disable://captureHttp disable://captureHttps 2024-03-10 23:39:04 +08:00
avwo 11795a1c7e perf: optimize memory 2023-12-24 23:44:17 +08:00
avwo 9ee6cb82a5 feat: refine parseUrl 2023-12-06 20:48:48 +08:00
avwo 54b8413fd0 feat: add special path /_WHISTLE_5b6af7b9884e1165_/ 2023-08-18 21:53:49 +08:00
avwo 2c7aff82dd feat: enable://forHttp|forHttps 2023-07-09 23:36:18 +08:00
avwo 8e9fe8aba9 refactor: show the tunnel request of CAPTURE TUNNEL CONNECTS error 2023-05-14 23:30:06 +08:00
avwo bbaa81ad6f fix: socksv5 proxy 2023-05-03 23:35:26 +08:00
avwo b64b4f91fb feat: support early hints 2023-01-06 22:57:54 +08:00
avwo 0b1d2ffc53 feat: delete://resC.xxx 2022-11-28 02:25:13 +08:00
avwo 98de59a146 feat: delete://query.xxx delete://reqCookie.xxx delete://resCookie.xxx 2022-10-30 15:54:45 +08:00
avwo e14d8b1e0c fix: https://github.com/avwo/whistle/issues/759 2022-07-25 17:05:09 +08:00