因此,我尝试在使用代理和 TLS 授权的节点测试 (AVA) 中进行调用。我在用着:
- 打字稿:3.9.3
- ts节点:8.10.2
- axios:0.21.1
- https-代理代理:5.0.0
到目前为止我学到了什么:
AxiosProxyConfig
目前坏了,所以我不能使用它: Axios 代理不工作,https-proxy-agent
确实像kraiz 在 bug 线程中所说的那样工作,但是......我看不到任何关于的内容ca
,cert
并且key
我无法提供那些除了这个https-proxy-agent npm 页面之外我无法找到任何文档的文档。
所以只是用一些代码来结束,这就是我想要做的,我不知道如何实现这一点:
const httpsProxyAgent = new HttpsProxyAgent({
cert: this.cert,
key: this.key,
ca: this.ca,
host: PROXY_HOST,
port: PROXY_PORT,
});
// then later
const config: AxiosRequestConfig = {
httpsAgent: httpsProxyAgent,
headers: { ... }
proxy: false
};
虽然HttpsProxyAgent
似乎扩展Agent
了那些未使用的选项(证书部分),但我收到UNABLE_TO_VERIFY_LEAF_SIGNATURE
错误,表明该选项ca
被忽略。有谁知道如何向该代理提供这些证书?我找不到任何答案。我不是节点专家,所以我可能错过了一些明显的东西。
提前致谢!
PS。我也试过Objects.assign()
这样
// this proxy agent is working for sure (tested)
const httpsProxyAgent = new HttpsProxyAgent('http://proxy:1234');
// trying to assign certs after creating httpsProxyAgent
Object.assign(httpsAgent.options, {
ca: this.ca,
key: this.key,
cert: this.cert
});
// then again passing it to AxiosRequestConfig.httpAgent and making a call
结果又是一次UNABLE_TO_VERIFY_LEAF_SIGNATURE
。
PSS。我已经看到这个better-https-proxy-agent
(git page)似乎有解决方案,唯一的缺点是我看不到任何 TS 支持。