Home

Awesome

基于Node.js的HTTPS MITM(中间人)代理的原理和实现

<img src="doc/img/hacker.png" width="500px">

部署在公网的服务面临着越来越多的流量劫持、运营商劫持事件,为了能更好的保障信息的安全性和完整性,HTTPS得到了越来越多的重视。基于此原因,本文章尝试从另一个视角,通过使用Node.js实现一个简单的HTTPS中间人代理的方式,阐述HTTPS是如何保证网络信息的安全,并且分析用户的何种行将会导致HTTPS的安全性失效。

MITM(中间人)代理的技术手段对于软件开发者并不陌生,在实际开发和测试中经常会使用。调试接口、查看HTTP请求与响应时使用的http抓包调试工具如:FiddlerCharles,就是基于该原理实现的。

本文会更侧重于代码的实现,每一步都提供详细的可运行的js代码实现

问题反馈

如本文有原理上或者是代码层面的错误,再或者是任何方面的问题,都欢迎提问或 Pull Request!

第〇节:思路分析

第一节:HTTP中间人代理实现

第二节:如何代理HTTPS请求

第三节:HTTPS数字证书和数字证书链

第四节:一个简易的HTTPS代理

第五节:总结