科学上网
Secure Web Proxy (HTTPS proxy, stunnel)
参考:The Chromium Projects: Secure Web Proxy
这里介绍单纯一个最简化的 squid 服务端配置方式。
这么安装是不合适的,因为默认没带ssl。如果是这么安装的请先卸载。
apt-get install squid
首先安装基本开发包。
apt-get install devscripts build-essential fakeroot libssl-dev
然后下载apt上的源码,仅仅添加一个参数然后 build
apt-get source squid
cd squid3-3.5.12
vim debian/rules
--with-default-user=proxy \
--with-openssl
./configure
debuild -us -uc -b
不出意外的话,可以去上级目录安装 deb 包了。
dpkg -i squid_3.5.12-1ubuntu7.3_amd64.deb squid-common_3.5.12-1ubuntu7.3_all.deb
你(当然)需要一个证书,证书必须绑定 IP 或者域名。
如果用 IP 访问,则替换 {IP}
为服务器 IP 地址。如果用域名访问,那么所有的 subjectAltName=IP:
都应该换成 subjectAltName=DNS:
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=US/CN={IP}" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=IP:{IP}"))
rm -r demoCA
mkdir demoCA && cd demoCA && mkdir newcerts && touch index.txt && touch serial && echo 01 > serial && cd ..
openssl ca -policy policy_anything -days 3650 -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -extfile <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=IP:{IP}")) -extensions SAN
cat ca.crt >> server.crt
好了,证书准备好了,把他们放到 /opt/keys/
下,或者任何一个你喜欢的地方。
https_port 443 cert=/opt/keys/server.crt key=/opt/keys/server.key
acl world src all
http_access allow world
这样配置好的是匿名的 HTTPS 代理。本机安装 ca.crt,谷歌浏览器可以直接使用。 别人如果想盗用,则需要安装你的 CA 证书。所以,防君子不防小人。但是科学上网是没有问题的。