<commit_before># https-mitm-proxy-handbook

本项目详细讲解如何用[node.js](http://nodejs.org/)一步步实现一个**HTTPS**的[MITM](https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB)(中间人)代理服务器。从CA证书的生成和安装到最后功能的完整实现。每一步都提供详细的[js代码实现](./example)。

# 第零节：前言

# 第一节: 生成CA根证书
code: `example/createRootCA.js`
```
npm run step1
```

# 第二节：安装CA根证书
windows
```
npm run step2Win
```

Mac
```
npm run step2Mac
```

# 第三节: 基于CA根证书生成网站域名对应的证书
code: `example/createCertByRootCA.js`
```
npm run step3
```

# 第四节: 一个简单的HTTPS服务
`example/createHttpsServer.js`
```
npm run step4
```


# 第五节：HTTP隧道
```
npm run step5
```

# 第六节：Hello World版的HTTPS MITM代理

# 第七节：真正的HTTPS MITM代理<commit_msg>modify readme.md<commit_after># https-mitm-proxy-handbook

本项目详细讲解如何用[node.js](http://nodejs.org/)一步步实现一个**HTTPS**的[MITM](https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB)(中间人)代理服务器。从CA证书的生成和安装到最后功能的完整实现。每一步都提供详细的[js代码实现](./example)。

**本项目代码允许方式：**  
1、[下载项目zip](https://github.com/wuchangming/https-mitm-proxy-handbook/archive/master.zip)  
2、解压zip后进入到文件夹下执行命令 `npm install` 安装依赖

#### 第〇节：[前言](./doc/Chapter0)

#### 第一节：[生成CA根证书](./doc/Chapter1)

#### 第二节：[安装CA根证书](./doc/Chapter2)

#### 第三节：[基于CA根证书生成网站域名对应的证书](./doc/Chapter3)

#### 第四节：[一个简单的HTTPS服务](./doc/Chapter4)

#### 第五节：[HTTP隧道](./doc/Chapter5)

#### 第六节：[Hello World版的HTTPS MITM代理](./doc/Chapter6)

#### 第七节：[真正的HTTPS MITM代理](./doc/Chapter7)
{'fraction_non_alphanumeric': 0.21698786581013563, 'fraction_numerical': 0.029978586723768737, 'mean_word_length': 6.417989417989418, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2155489', 'n_tokens_mistral': 852, 'n_tokens_neox': 917, 'n_words': 62}