feat: 新增 unVerifySsl 拦截器

pull/406/head
王良 2024-11-27 13:05:19 +08:00
parent de70b083dd
commit 9e27eb4301
4 changed files with 41 additions and 6 deletions

View File

@ -122,11 +122,22 @@ module.exports = {
rOptions.agent = rOptions.agent.unVerifySslAgent rOptions.agent = rOptions.agent.unVerifySslAgent
unVerifySsl = true unVerifySsl = true
} }
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, sni: ${interceptOpt.sni}${unVerifySsl ? ', unVerifySsl' : ''}`)
log.info('proxy intercept: hostname:', originHostname, ', target', proxyTarget, ', sni replace servername:', rOptions.servername, (unVerifySsl ? ', unVerifySsl' : '')) const unVerifySslStr = unVerifySsl ? ', unVerifySsl' : ''
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, sni: ${interceptOpt.sni}${unVerifySslStr}`)
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, sni replace servername: ${rOptions.servername}${unVerifySslStr}`)
} else if (interceptOpt.unVerifySsl === true) {
if (rOptions.agent.options.rejectUnauthorized && rOptions.agent.unVerifySslAgent) {
rOptions.agent = rOptions.agent.unVerifySslAgent
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, unVerifySsl`)
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, unVerifySsl`)
} else {
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}, already unVerifySsl`)
log.info(`proxy intercept: hostname: ${originHostname}, target: ${proxyTarget}, already unVerifySsl`)
}
} else { } else {
res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}`) res.setHeader('DS-Interceptor', `proxy: ${proxyTarget}`)
log.info('proxy intercept: hostname:', originHostname, ', target', proxyTarget) log.info(`proxy intercept: hostname: ${originHostname}, target${proxyTarget}`)
} }
return true return true

View File

@ -12,9 +12,11 @@ module.exports = {
rOptions.agent = rOptions.agent.unVerifySslAgent rOptions.agent = rOptions.agent.unVerifySslAgent
unVerifySsl = true unVerifySsl = true
} }
res.setHeader('DS-Interceptor', `sni: ${interceptOpt.sni}${unVerifySsl ? ', unVerifySsl' : ''}`)
log.info('sni intercept: sni replace servername:', rOptions.hostname, '➜', rOptions.servername, (unVerifySsl ? ', unVerifySsl' : '')) const unVerifySslStr = unVerifySsl ? ', unVerifySsl' : ''
res.setHeader('DS-Interceptor', `sni: ${interceptOpt.sni}${unVerifySslStr}`)
log.info(`sni intercept: sni replace servername: ${rOptions.hostname}${rOptions.servername}${unVerifySslStr}`)
return true return true
}, },
is (interceptOpt) { is (interceptOpt) {

View File

@ -0,0 +1,21 @@
module.exports = {
name: 'unVerifySsl',
priority: 123,
requestIntercept (context, interceptOpt, req, res, ssl, next) {
const { rOptions, log } = context
if (rOptions.agent.options.rejectUnauthorized && rOptions.agent.unVerifySslAgent) {
rOptions.agent = rOptions.agent.unVerifySslAgent
log.info(`unVerifySsl intercept: ${rOptions.hostname}, unVerifySsl`)
res.setHeader('DS-Interceptor', 'unVerifySsl')
} else {
log.info(`unVerifySsl intercept: ${rOptions.hostname}, already unVerifySsl`)
res.setHeader('DS-Interceptor', 'already unVerifySsl')
}
return true
},
is (interceptOpt) {
return interceptOpt.unVerifySsl === true
},
}

View File

@ -10,6 +10,7 @@ const requestReplace = require('./impl/req/requestReplace')
const proxy = require('./impl/req/proxy') const proxy = require('./impl/req/proxy')
const sni = require('./impl/req/sni') const sni = require('./impl/req/sni')
const unVerifySsl = require('./impl/req/unVerifySsl')
const baiduOcr = require('./impl/req/baiduOcr') const baiduOcr = require('./impl/req/baiduOcr')
@ -25,7 +26,7 @@ module.exports = [
OPTIONS, OPTIONS,
success, redirect, abort, cacheReq, success, redirect, abort, cacheReq,
requestReplace, requestReplace,
proxy, sni, proxy, sni, unVerifySsl,
baiduOcr, baiduOcr,
// response interceptor impls // response interceptor impls