跳至主要内容

使用Squid搭建HTTPS代理服务器

使用Squid搭建HTTPS代理服务器
发布于 2015年02月25日
由于经常去的一些国外网站如Google、Blogspot、Wordpress被“出现了技术问题”,访问不了,于是我在自己的DigitalOcean云主机上搭建了一个Squid代理服务器用于科学上网。Squid支持HTTP、HTTPS代理,因此能够满足日常访问国外某些网站的需求。然而如果直接使用HTTP连接Squid是明文传输的,在第一次使用时,会马上“出现技术问题”,因此需要使用stunnel加密代理通道。具体配置步骤如下,云主机的Linux发行版是Ubuntu 14.10 x32,如果你使用的是其他发行版,包管理与配置文件路径会略有不同。

安装必要的软件

安装apache2-utils用于HTTP认证文件的生成,

apt-get install apache2-utils -y
安装Squid,

apt-get install squid3 -y
安装stunnel,

apt-get install stunnel4 -y
配置Squid

生成HTTP认证文件,输入对应的密码。这个认证文件用于之后HTTP代理的认证登录,如果不需要登录认证,可以略过。

htpasswd -c /etc/squid3/squid.passwd <登录用户名>
修改Squid默认配置,配置文件位于/etc/squid3/squid.conf。

1. 修改监听地址与端口号

找到TAG: http_port注释,把其下方的

# Squid normally listens to port 3128
http_port 3128
中http_port修改为127.0.0.1:3128,使得Squid只能被本地(127.0.0.1)访问。此处可以修改为监听其他端口号。

2. 修改访问权限与HTTP认证(可选)

若不需要添加HTTP认证,只需将http_access deny all修改为http_access allow all即可,无需下列的操作。

使用如下命令生成认证文件,

htpasswd -c /etc/squid3/squid.passwd <登录用户名>
再次打开Squid配置文件/etc/squid3/squid.conf,找到TAG: auth_param注释,在其下方添加,

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid.passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
找到TAG: acl,在其下方添加,

acl ncsa_users proxy_auth REQUIRED
找到TAG: http_access,在其下方添加,使得只允许经过认证的用户访问,

http_access deny !ncsa_users
http_access allow ncsa_users
3. 重启Squid

service squid3 restart
配置stunnel

接下来,我们需要在Squid上添加一层加密。

生成公钥和私钥

生成私钥(privatekey.pem):

openssl genrsa -out privatekey.pem 2048
生成公钥(publickey.pem):

openssl req -new -x509 -key privatekey.pem -out publickey.pem -days 1095
(需要注意的是,Common Name需要与服务器的IP或者主机名一致)

合并:

cat privatekey.pem publickey.pem >> /etc/stunnel/stunnel.pem
修改stunnel配置

新建一个配置文件/etc/stunnel/stunnel.conf,输入如下内容

client = no
[squid]
accept = 4128
connect = 127.0.0.1:3128
cert = /etc/stunnel/stunnel.pem
配置中指定了stunnel所暴露的HTTPS代理端口为4128,可以修改为其他的值。

修改/etc/default/stunnel4配置文件中ENABLED值为1。

ENABLED=1
重启stunnel

service stunnel4 restart
至此,服务器端已配置完成了。

本地浏览器配置

添加证书到受信任的根证书颁发机构列表中

以Windows下Chrome浏览器为例,将服务器上的公钥publickey.pem下载至本地,重命名至publickey.crt,在Chrome中依次点击 “设置” - “显示高级设置” - “HTTP/SSL” - “管理证书”,在“受信任的根证书颁发机构”选项卡中“导入”这个crt证书就完成了。

代理客户端配置

将本地的代理客户端指向https://<你的服务器IP或主机名>:4128,这里的IP或主机名和生成公钥时的Common Name一致,端口为stunnel的端口。如果有配置HTTP认证的话,需要在客户端中配置对应的用户名和密码。如果没有HTTP客户端的话,推荐使用Chrome的插件Proxy SwitchyOmega。

评论

此博客中的热门博文

一个叫做《404》的互联网

一个叫做《404》的互联网 原文 来源: http://chuansong.me/n/2478935 几年以前,我曾经嘲笑过某科技界大佬。当时他说:也许90后、95后会慢慢不知道谷歌是什么网站。 那一年,这对于我来说简直就是世界上最好笑的笑话。谷歌,全世界最卓越的互联网公司,活在互联网的一代中国人,会不知道他们的网站? 今天,我收回这句嘲笑。因为这件不可能的事,它慢慢变成了现实。 没有人再关注什么谷歌不谷歌。对他们来说,百度也蛮好用的,反正他们几乎没用过谷歌。没有谷歌又怎样?大家还是开心的刷微博,看微信,听歌,看娱乐节目。对于从来就不知道谷歌的人来说,少了谷歌又有什么影响? 多年前,我们也是可以登陆Facebook的。其实这个网站和校内一样,也挺蠢的。可在上面你能看到老外们的生活,可以轻易的跟一万公里以外的人互相拜访,可以看到很多根本不会开到校内上的主页。你用汉语回复,下面给你聊起来的可能是香港仔,可能是台湾人。你用英语回复,说不定有比你英语用的更蹩脚的寂寞的北欧人来跟你搭讪。你感觉地球真的变成了地球村,你还没拉门走出去,别人就推门走了进来。 然后,它就没有了。起初,它的失踪激起了很大的声音,后来,声音就消失了。 多年前,我们也是可以登陆Twitter的。其实这个网站和微博一样,也不过是些信息流,刷上一整天,也不见得有什么用处。但至少,你可以以最快速度获取你想知道的任何新事,你会真正了解什么事情在全世界是流行的,而不是经过各种截图、翻译、转发,甚至曲解、断章取义、黑白颠倒的东西。你知道的是真相,赤裸裸的,也许有点太短的真相。但至少中间不会有无数人的加工与再加工,偏激、片面,就在这个过程中产生了,不管后来者有意还是无意。 然后,它就没有了。首先是它的本体没有了,然后它的模仿者也没有了,模仿者的模仿者也没有了。只剩一个模仿者的模仿者的模仿者,现在你每天能在上面看到无数广告。 多年前,我们也是可以登陆YouTube的。对于有的人来说,这个网站就是个大型优酷,当年有人信誓旦旦的说,没有YouTube,我们中国人会很快让优酷超过YouTube。可这么多年过去了,视频还是那么卡,内容还是那么垃圾,原创还是那么容易被盗窃,视频丰富度还是那么的可怜。在YouTube上,你能看到全世...

日本VPS —— ConoHa

日本VPS —— ConoHa,介绍一些心得体验 ConoHa管理面板 作为一名职业PHPer,Linux终究还是逃不了(尽管我并不喜欢对着黑底白字敲代码)。为了锻炼自己的能力,我忍痛将小站从别人赞助的虚拟空间里搬离,决定租个VPS挂SS挂网站,并用于各种实验和学习,毕竟虚拟机还是不过瘾。以下内容纯手打,菜鸟之见,若有不足还望指出。 VPS的选择 首先本着支持国产的心态,看了看国内(含香港)的一些VPS,贵得吓人。再看看国外VPS,默默的放弃了国内 在V2EX和一些论坛逛了一个上午,也做了一些相关的咨询,不少人建议我买搬瓦工(BandwagonHost),也有推荐其他国家的VPS。这些VPS无一例外性价比超高,但由于距离远,延迟和稳定性都不太好,挂个网站无妨,但对于我这种还需要挂SS、做实验和学习的人来说并不那么合适。眼光回到亚洲,看看VPS行业比较发达的日本,Linode-JP、Sakura、ConoHa、Vultr四家不约而同的出现在各种帖子、评测中,我也跟风看看这几家吧! Linode 说到VPS,当然都是Linode大法好,可是Linode东京节点无限缺货啊,据说仅限老用户购买 被VPS代购玩坏了 ,X宝上的Linode代购也只是给你开通子帐号,万一他哪天不高兴了,随时可以把你的VPS弄个底朝天,太没安全保障;网上也没见到有人愿意转让的,无奈放弃。 Sakura 据说在日本口碑极好,被称为日本的Linode。然而申请条件需要你肉身在日本…作为一个优秀的 退役共青团员  预备党员,果断放弃。不过据说也是因为这个原因,才能保证服务器稳定。毕竟现在国内IT行业飞速发展,涌到国外到处 玩坏 购买VPS的国人越来越多 中国人真是太可怕了 Vultr 本来差点就要买这家了,口碑还不错。不过对于英文界面,总是有种莫名的恐惧感(虽然基本上都看得懂),再加上跟ConoHa相比,性价比占下风,放弃 ConoHa 一打开网页,就被满满的中文吓到了,而且看起来并不是机翻,网页看起来也算顺眼 (美云酱也很顺眼) 。900日元(约45RMB,安倍经济学大法好,多亏了它日元才降降降)双核1G、50GSSD、不限流量、100M保底带宽,满满的性价比 (国内VPS吃翔) 。而且点击别人的邀请链接注册的话,还可以...

用Shadowsocks和Proxifier自由访问互联网

用Shadowsocks和Proxifier自由访问互联网 发表于 2014年6月25日 ,共  98,416  次阅读 最近国内到国外网络情况急剧恶化,具体原因这里不便细说,只是对于我这种Google重度用户来说,是一件无比蛋疼的事情。用修改hosts的方便基本只能使用一两天,还是使用代理吧。之前有文章介绍过 SSH + chrome(firefox)的方式访问国外网站 ,但是鉴于目前监管已经涉及到SSH,为了VPS的安全,今天介绍另外一种方法:”用Shadowsocks和Proxifier无缝访问互联网”,同时还能让电脑上不支持代理访问的软件使用。 一、软件介绍 1、什么是Shadowsocks shadowsocks一个可穿透防火墙的轻量代理,目前已经支持包括WIN,安卓,IOS等所有平台 。  官网地址: http://www.shadowsocks.org/ (需梯子)  各版本下载地址: http://shadowsocks.org/en/download/clients.html  目前我使用的是shadowsocks-gui:http://sourceforge.net/projects/shadowsocksgui/files/dist/shadowsocks-gui-0.4-win-ia32.7z 2、什么是Proxifier Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好,和SOCKSCAP属于同类软件,不过SOCKSCAP已经很久没更新了,不支持64位系统。 有许多网络应用程序不支持通过代理服务器工作,Proxifier 解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。 Proxifier 使您可以: 1、通过代理服务器运行任何网络应用程序。对于软件不需要有什...