Skip to content

作为 HTTPS 代理

boytm edited this page Dec 24, 2017 · 1 revision

1. 准备工作

1.1. 拥有域名

有钱可以直接买;没钱可以去 No-IP 上申请一个

域名假定为 secure-proxy.example.com

1.2. 拥有 SSL 证书

有钱可以直接买;没钱可以去 Let's Encrypt 申请一个,有效期 3 个月,可续期

这里以 Let's Encrypt 的证书为例,参照 https://letsencrypt.org/getting-started/ 步骤后,会在服务器的 /etc/letsencrypt/live/secure-proxy.example.com/ 目录下面生成证书

1.3. 准备一份 PAC 文件

省事可以直接用基于 gfwlist 生成的 PAC 文件,如使用 gfwlist2pac 工具。记得把 PAC 里面代理指令

PROXY 127.0.0.1:18888

改为

HTTPS secure-proxy.example.com:443

将准备好的 PAC 文件改名为 proxy.pac 并放置在服务器的如下路径

/etc/mproxy/proxy.pac

2. 搭建步骤

2.1. 远端服务器:

mproxy 工作在 HTTPS 代理模式,使用 /etc/mproxy/proxy.pac 作为 PAC 文件,使用 Let's Encrypt 颁发的给域名 secure-proxy.example.com 的证书

mproxy -l 443 --ssl_certificate /etc/letsencrypt/live/secure-proxy.example.com/fullchain.pem --ssl_certificate_key /etc/letsencrypt/live/secure-proxy.example.com/privkey.pem --pac /etc/mproxy/proxy.pac --user nobody

备注:

  • 为了隐蔽性,建议把 443 端口改为非标准端口,如 60443

2.2. 本地:

不需要用任何额外工具

2.3. 本地使用方法

公网上有一个 HTTPS 代理: https://secure-proxy.example.com:443/ 。 下面分别介绍 浏览器 和 命令行工具 各自的使用

浏览器使用方法

目前只有 Chrome、Firefox 支持

Chrome

命令行类工作的使用方法

支持的工具、库比较少,需要 curl 版本在 7.52.0 及以上。设置下面环境变量即可

export ALL_PROXY=https://secure-proxy.example.com:443/