首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用代理而忽略特定的请求ssl错误

如何使用代理而忽略特定的请求ssl错误
EN

Stack Overflow用户
提问于 2022-11-27 11:50:39
回答 1查看 31关注 0票数 2

你好,我正在尝试连接到第三方rest API,它有点老了,并且它的证书过期了。我使用NodeJSaxios发送请求,目前的情况如下。

代码语言:javascript
复制
agent = new HttpsProxyAgent({ host, port, auth: `${uname}:${pass}` });

this.client = axios.create({
    baseURL: this.baseUrl,
    headers: this.headers,
    httpsAgent: agent,
});

上面的agent创建了一个代理代理,这样我的请求就可以穿透我后来在axios上挂载的主机,我正在使用这个包https-proxy-agent。现在代理可以正常工作了,但是它抛出了一个错误certificate has expired。我尝试过使用rejectUnauthorized: false,但是这一点都不起作用,但是我又找到了一个解决方案,那就是使用NODE_TLS_REJECT_UNAUTHORIZED=0。但是,人们普遍认为在服务器上使用是危险的,我也想知道我是否会使用这个环境变量,它会在拦截时使客户端请求可见吗?

这里我需要的只是连接到代理并拒绝这个axios客户端的证书错误,如果有其他http客户端的解决方案--请随意分享,非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-27 16:05:19

设法用不同的包来解决这个问题。

代码语言:javascript
复制
import { getProxyHttpAgent } from 'proxy-http-agent';


const proxyUrl = `http://${host}:${port}`;

agent = getProxyHttpAgent({
    proxy: proxyUrl,
    endServerProtocol: 'https:',
    rejectUnauthorized: false,
});

使用此包设置代理非常有效,除非出于某些原因,我必须使用非基于身份验证的代理,否则它会引发一些奇怪的ssl错误,如下所示

tunneling socket could not be established, cause=write EPROTO 20920:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74589766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档