mirror of https://github.com/certd/certd
fix: 修复某些代理情况下 报 400 The plain HTTP request was sent to HTTPS port use proxy 的bug
parent
4053e72782
commit
a13203fb3f
|
@ -4,6 +4,7 @@ import { Logger } from "log4js";
|
||||||
import { HttpProxyAgent } from "http-proxy-agent";
|
import { HttpProxyAgent } from "http-proxy-agent";
|
||||||
import { HttpsProxyAgent } from "https-proxy-agent";
|
import { HttpsProxyAgent } from "https-proxy-agent";
|
||||||
import nodeHttp from "http";
|
import nodeHttp from "http";
|
||||||
|
import * as https from "node:https";
|
||||||
export class HttpError extends Error {
|
export class HttpError extends Error {
|
||||||
status?: number;
|
status?: number;
|
||||||
statusText?: string;
|
statusText?: string;
|
||||||
|
@ -17,7 +18,7 @@ export class HttpError extends Error {
|
||||||
}
|
}
|
||||||
super(error.message);
|
super(error.message);
|
||||||
|
|
||||||
if (error?.message?.indexOf("ssl3_get_record:wrong version number") > -1) {
|
if (error?.message?.indexOf("ssl3_get_record:wrong version number") >= 0) {
|
||||||
this.message = "http协议错误,服务端要求http协议,请检查是否使用了https请求";
|
this.message = "http协议错误,服务端要求http协议,请检查是否使用了https请求";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +70,7 @@ export function createAxiosService({ logger }: { logger: Logger }) {
|
||||||
delete config.skipSslVerify;
|
delete config.skipSslVerify;
|
||||||
config.httpsAgent = agents.httpsAgent;
|
config.httpsAgent = agents.httpsAgent;
|
||||||
config.httpAgent = agents.httpAgent;
|
config.httpAgent = agents.httpAgent;
|
||||||
|
config.proxy = false; //必须 否则还会走一层代理,
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
|
@ -154,13 +155,18 @@ export function createAgent(opts: nodeHttp.AgentOptions = {}) {
|
||||||
let httpAgent, httpsAgent;
|
let httpAgent, httpsAgent;
|
||||||
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy;
|
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy;
|
||||||
if (httpProxy) {
|
if (httpProxy) {
|
||||||
|
logger.info("use httpProxy:", httpProxy);
|
||||||
httpAgent = new HttpProxyAgent(httpProxy, opts as any);
|
httpAgent = new HttpProxyAgent(httpProxy, opts as any);
|
||||||
|
} else {
|
||||||
|
httpAgent = new nodeHttp.Agent(opts);
|
||||||
}
|
}
|
||||||
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
||||||
if (httpsProxy) {
|
if (httpsProxy) {
|
||||||
|
logger.info("use httpsProxy:", httpsProxy);
|
||||||
httpsAgent = new HttpsProxyAgent(httpsProxy, opts as any);
|
httpsAgent = new HttpsProxyAgent(httpsProxy, opts as any);
|
||||||
|
} else {
|
||||||
|
httpsAgent = new https.Agent(opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
httpAgent,
|
httpAgent,
|
||||||
httpsAgent,
|
httpsAgent,
|
||||||
|
|
Loading…
Reference in New Issue