Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wuchangming/https-mitm-proxy-handbook
基于Node.js的HTTPS MITM(中间人)代理的原理和实现
https://github.com/wuchangming/https-mitm-proxy-handbook
mitm nodejs
Last synced: 19 days ago
JSON representation
基于Node.js的HTTPS MITM(中间人)代理的原理和实现
- Host: GitHub
- URL: https://github.com/wuchangming/https-mitm-proxy-handbook
- Owner: wuchangming
- License: mit
- Created: 2016-10-16T07:33:45.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-01-29T12:02:57.000Z (almost 8 years ago)
- Last Synced: 2024-11-18T19:51:24.123Z (24 days ago)
- Topics: mitm, nodejs
- Language: JavaScript
- Homepage:
- Size: 4.49 MB
- Stars: 444
- Watchers: 13
- Forks: 97
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-network-stuff - **279**星
README
# 基于Node.js的HTTPS [MITM](https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB)(中间人)代理的原理和实现
部署在公网的服务面临着越来越多的流量劫持、运营商劫持事件,为了能更好的保障信息的安全性和完整性,HTTPS得到了越来越多的重视。基于此原因,本文章尝试从另一个视角,通过使用[Node.js](http://nodejs.org/)实现一个简单的HTTPS中间人代理的方式,阐述HTTPS是如何保证网络信息的安全,并且分析用户的何种行将会导致HTTPS的安全性失效。
**[MITM](https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB)(中间人)代理**的技术手段对于软件开发者并不陌生,在实际开发和测试中经常会使用。调试接口、查看HTTP请求与响应时使用的http抓包调试工具如:[Fiddler](http://www.telerik.com/fiddler)、 [Charles](https://www.charlesproxy.com/),就是基于该原理实现的。
本文会更侧重于代码的实现,每一步都提供`详细的`、`可运行的`[js代码实现](./code)。
#### 问题反馈
如本文有原理上或者是代码层面的错误,再或者是任何方面的问题,都欢迎[提问](https://github.com/wuchangming/https-mitm-proxy-handbook/issues/new)或 Pull Request!
#### 第〇节:[思路分析](./doc/Chapter0.md)
#### 第一节:[HTTP中间人代理实现](./doc/Chapter1.md)
#### 第二节:[如何代理HTTPS请求](./doc/Chapter2.md)
#### 第三节:[HTTPS数字证书和数字证书链](./doc/Chapter3.md)
#### 第四节:[一个简易的HTTPS代理](./doc/Chapter4.md)
#### 第五节:[总结](./doc/Chapter5.md)