Mitmproxy可否作为中间人实现HTTPS转HTTP降级 能否在Jenkins容器中实现
HTTPS转HTTP协议降级方案可行性说明
方案1:使用Mitmproxy作为中间人实现降级(可行)
具体实现逻辑如下:
- 将Mitmproxy部署在与Jenkins、Gtw互通的内部网络中
- 配置Jenkins的请求代理指向Mitmproxy服务地址,或者将发往Gtw域名的请求定向到Mitmproxy
- 在Mitmproxy中编写自定义流量处理规则,匹配到发往Gtw的HTTPS请求后,将请求协议从
https替换为http,同时调整目标端口为Gtw的HTTP服务端口,完成转发后再将响应原路返回给Jenkins - 需提前将Mitmproxy的根证书导入到Jenkins容器的系统信任证书库、以及Jenkins自身的Java信任证书库中,避免Jenkins触发HTTPS证书校验报错
该方案的优势是无需修改Jenkins侧的任务或配置,所有转换逻辑统一在Mitmproxy侧维护,后续规则调整更灵活。
方案2:直接在Jenkins容器内完成降级(可行,落地成本更低)
根据实际场景可以选择两种实现方式:
- 最简方式:如果Jenkins中调用Gtw的地址是全局统一配置的、或者只有少量任务硬编码了地址,直接把对应配置中的
https://Gtw域名修改为http://Gtw域名即可,不需要额外部署任何工具 - 适配多任务场景:如果Jenkins存在大量硬编码HTTPS Gtw地址的任务,逐个修改成本过高,可以在容器内部署轻量反向代理(比如Nginx),监听本地127.0.0.1的HTTPS端口,将收到的请求转换为HTTP协议转发给Gtw服务,同时修改Jenkins容器的
/etc/hosts文件,把Gtw的域名解析指向127.0.0.1,同样要把本地反向代理的自签证书导入到容器信任库中即可生效
风险提示:两种方案都属于HTTPS明文降级,仅建议在完全可信的内部网络环境下使用,避免流量明文传输导致敏感数据泄露。
内容的提问来源于stack exchange,提问作者Lojtar ne pension
相关产品推荐
相关产品推荐

