avwo
|
f0a4f0ec47
|
refactor: refine code
|
2026-10-11 20:27:49 +08:00 |
|
avwo
|
f7c87f3b37
|
feat: enable://useSniAsTunnelDomain
|
2026-10-11 11:39:47 +08:00 |
|
avwo
|
2ab4290e72
|
refactor: refine code
|
2026-10-03 12:21:15 +08:00 |
|
avwo
|
ca15b3f3a4
|
fix: https://github.com/avwo/whistle/pull/1351
|
2026-09-12 09:11:24 +08:00 |
|
avwo
|
91daac147a
|
fix: https://github.com/avwo/whistle/issues/1360
|
2026-09-12 09:10:07 +08:00 |
|
avwo
|
32f8beb0d7
|
refactor: refine code
|
2026-09-05 15:06:24 +08:00 |
|
avwo
|
1c2d7c7f3a
|
refactor: refine code
|
2026-07-25 16:00:14 +08:00 |
|
avwo
|
7a98094d5a
|
perf: optimize performance
|
2026-07-11 13:23:17 +08:00 |
|
avwo
|
26b7850c95
|
refactor: refine code
|
2026-06-21 17:17:14 +08:00 |
|
avwo
|
7512f21acc
|
feat: add test rules function
|
2026-06-19 00:49:39 +08:00 |
|
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 |
|