Commit Graph

165 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 c4740f3ef2 refactor: refine code 2026-01-31 07:41:12 +08:00
avwo d5007f3cd9 refactor: refine code 2025-12-21 21:53:22 +08:00
avwo 1b77a5d59c feat: install plugins 2025-05-31 07:59:12 +08:00
avwo c3839a4d90 feat: install plugins 2025-04-03 19:43:47 +08:00
avwo c2282bf8b7 fix: https://github.com/avwo/whistle/pull/1192 2025-01-20 18:15:00 +08:00
avwo eae6ce353d fix: https://github.com/avwo/whistle/pull/1192 2025-01-13 20:35:02 +08:00
avwo 985f2dc48a feat: allow to update root ca 2024-07-19 21:58:51 +08:00
avwo e14d8b1e0c fix: https://github.com/avwo/whistle/issues/759 2022-07-25 17:05:09 +08:00
avwo f69fc0423f refactor: refine code 2022-05-10 20:24:26 +08:00
avwo 9995e83240 fix: add custom root info 2022-05-10 20:07:41 +08:00
avwo b02b397980 refactor: refine code 2022-05-10 19:54:25 +08:00
avwo 835d6b071b feat: remove .cer & .pem cert files 2022-05-10 19:35:29 +08:00
avwo da4fb5cfe4 feat: allow to upload .cer .pem cert files 2022-05-10 19:23:58 +08:00
avwo a3acf8c209 feat: accept .cer, .pem cert file 2022-05-10 16:59:57 +08:00
avwo 659fe2cc7d feat: create root ca by ToolBox 2022-03-29 09:47:08 +08:00
avwo a0d69507e4 fix: https://github.com/electron/electron/issues/21162 2022-02-25 15:01:17 +08:00
avwo dbaff24f3c refactor: refine code 2022-02-14 13:20:02 +08:00
leezq 5dbc3b0c02 refactor: code style , prettier format 2022-01-25 14:48:06 +08:00
avwo 43f46945a3 refactor: refine serialNumber 2022-01-02 02:03:26 +08:00
avwo 67ff337896 fix: SEC_ERROR_REUSED_ISSUER_AND_SERIAL 2022-01-02 01:50:14 +08:00
avwo 3ca42255e8 refactor: extract loadCert function 2021-12-03 01:02:31 +08:00
avwo 3fd4b2a26e style: output cert dir 2021-11-26 23:02:59 +08:00
avwo f9a6489dce refactor: refine upload root ca 2021-11-26 10:39:35 +08:00
avwo 87e5f1192b refactor: reset certs cache 2021-11-25 22:46:59 +08:00
avwo 8c7ae4eaa1 refactor: utimes 2021-11-24 19:58:51 +08:00
avwo 0c538341ba refactor: refine code 2021-11-20 23:34:14 +08:00
avwo 4110caf892 refactor: limit filename length 2021-11-20 17:31:40 +08:00
avwo 0d763f978e refactor: refine code 2021-11-20 17:27:51 +08:00
avwo a81d067d41 refactor: refine code 2021-11-20 04:32:58 +08:00
avwo 4176085151 refactor: refine removeCert & updloadCerts 2021-11-19 21:07:49 +08:00
avwo 4b3d3fe4b7 feat: add removeCert & uploadCerts 2021-11-19 20:47:52 +08:00
avwo 19b720dce2 refactor: refine code 2021-11-19 20:35:07 +08:00
avwo 0b56ba598f refactor: refine code 2021-11-19 15:51:27 +08:00
avwo dbde132e99 refactor: prevent access to user-uploaded certificates 2021-11-19 15:30:04 +08:00
avwo 11f6e2f815 refactor: refine code 2021-11-19 15:20:15 +08:00
avwo e77c00bf67 feat: allow update custom in non-sni request 2021-11-19 14:50:02 +08:00
avwo 20a0876d8b refactor: refine code 2021-10-04 15:49:58 +08:00
avwo bc84044444 refactor: allow cache certs from plugin 2021-10-04 13:54:15 +08:00
avwo 91da64cf6e feat: add disableCustomCerts mode 2021-10-04 13:18:51 +08:00
avwo ad8af581cf feat: disable://captureSNI & disable://captureNoSNI 2021-10-03 14:42:14 +08:00
avwo 05a14a3698 feat: support remote certificate 2021-09-30 01:16:26 +08:00
avwo cf3b6e72db feat: plugin/options.getRootCA 2021-09-04 23:25:20 +08:00
avwo 9ec218aed3 feat: handle http h2 2021-08-30 09:03:20 +08:00
avwo ab8b1b79a6 refactor: refine code 2021-08-28 02:47:24 +08:00
avwo c029ec430b feat: getHttp2Server 2021-08-28 02:33:54 +08:00