最近使用Squid代理发现http代理没法用了,无法使用http代理上youtube或者facebook,只好寻思着切换到加密的https代理上。参照网路上的教程,记录下来,以便日后配置时使用。
编译带有SSl的squid3
1.安装编译依赖环境和源码
2.修改默认的编译选项,增加SSL支持和高匿
编辑文件squid3-3.4.8/debian/rules
,在DEB_CONFIGURE_EXTRA_FLAGS
配置中添加--enable-ssl
和 --enable-http-violations
:
3.编译 squid3,编译完成的deb包在~/squid_src目录
4.安装必要的软件
生成配置证书
编译完成之后,配置好浏览器代理,发现出现ERR_PROXY_CERTIFICATE_INVALID
错误,并且网站无法打开,说明可以连上,但是由于其它原因无法使用代理。后面继续在网路上搜了下才知道,跟证书有关,而且通过openssl自己生成的证书好像没法被chrome识别使用,只好使用免费的SSL证书letsencrypt
。
使用letsencrypt
生成免费证书首先需要一个域名。需要一条A记录解析到VPS服务器IP,然后方可生成,生成后的证书替换掉原来的即可。然后再Squid配置文件中/etc/squid3/squid.conf
将http_port
更改为https_port
并配置好证书路径即可:
需要注意的是,免费证书有效期有限制,需要过期继续生成。
生成完毕后配置squid.conf文件:
配置账号认证
使用系统自带的htpasswd生成账号密码,如若没有,先安装apt-get install apache2-utils
生成账号密码文件:
修改squid.conf文件配置密码认证方式
启动squid3服务
|
|
客户端配置代理
配置好代理协议https,域名,端口号即可.
在浏览器中配置https代理时,不能填写IP地址,否则仍然出现ERR_PROXY_CERTIFICATE_INVALID
错误,换成绑定的域名即可。
附录:一个squid3配置示例
|
|