Skip to content
Discussion options

You must be logged in to vote

你的判断是对的, 而且有一个不用关掉 HTTPS 扫描的解法: 卡巴斯基的根证书可以加进 Node 的信任库.

根因: 卡巴斯基的「加密连接扫描」对 TLS 做中间人, 用它自己的自签名根证书重新签发证书链. Node 默认不信任这张根证书, 所以 fetchSELF_SIGNED_CERT_IN_CHAIN. 关掉扫描就能恢复, 正说明被替换的是本地这一段证书链, 与 api.deepseek.com 服务端的证书无关 -- 这一点你已经验证过了.

解法: NODE_EXTRA_CA_CERTS

先在 Windows 上导出卡巴斯基的根证书:

  1. Win+R 打开 certlm.msc, 展开「受信任的根证书颁发机构」->「证书」
  2. 找名称含 Kaspersky 的那张根证书 (通常在列表靠前的厂商区)
  3. 右键 -> 所有任务 -> 导出 -> 选 Base64 编码 X.509 (.CER) -> 存为 kaspersky-root.pem

然后在启动 DSH 之前指向它:

$env:NODE_EXTRA_CA_CERTS = "C:\path\to\kaspersky-root.pem"
dsh

要让所有终端长期生效, 就把 NODE_EXTRA_CA_CERTS 写进系统环境变量.

这不是经验之谈, 我在本机做了 A/B 对照. Node v22.22.3, 起一个用自签名证书的本地 HTTPS 服务, 同一条命令只改这一个环境变量:

环境 fetch('https://localhost:8443')
不设 NODE_EXTRA_CA_CERTS f…

Replies: 4 comments 2 replies

Comment options

You must be logged in to vote
1 reply
@LeeJazen
Comment options

Answer selected by LeeJazen
Comment options

You must be logged in to vote
1 reply
@17-qxm
Comment options

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
4 participants