squid是linux下很有名的一个软件,可以用来做代理服务器,可以做反向代理来加速网站,同时也有很好的访问控制和缓存的功能。
我们这里用squid来反向我的web server以及提供https接口的访问。
我用的windows server,上面跑的apache,apache支持https好像麻烦了一点,用squid会容易不少。
简要步骤:
首先需要制作自签名证书,我用了openssl
搜索openssl for windows,找到了openssl的windows版本
http://www.slproweb.com/products/Win32OpenSSL.html
下载安装之
制作自签名证书以及CA,也是参考了网上的文章,搜索openssl 自签名证书
这篇不错
http://www.blogjava.net/midea0978/archive/2008/07/18/215740.html
照着做,你就得到了server.crt和server.key,这是证书文件和私钥文件
crt文件格式好像和pem文件是一个格式的
我试验的,上面文章里的步骤稍有调整
它说把openssl.cfg改为openssl.cnf,我试的不能这样做
而是要修改openssl.cfg,去掉里面的一个demoCA字样
我需要squid的windows版本,squid也有window版本的
搜索squid for windows,就看到了
可以到
http://www.acmeconsulting.it/SquidNT.html
http://squid.acmeconsulting.it/download/dl-squid.html
下载
我用的2.7的ssl版本(当然需要这个了)
按照它上面的说明安装
解压到C盘,把etc下的几个文件的default后缀去掉
squid -i
增加为服务
然后就是修改squid.conf配置
#http_port 3128
https_port 111.222.111.222:443 cert=c:/squid/ssl/server.crt key=c:/squid/ssl/server.key vhost
我不侦听3128或者其他任何http端口,只侦听https的443端口
这里要用到刚才的crt和key文件
cache_dir ufs c:/squid/var/cache 100 16 256
去掉注释,打开缓存
http_access allow all
之前是deny all
cache_peer 174.37.54.224 parent 80 0 no-query originserver name=mine
定义了目标
就可以了
squid -z
创建缓存目录
net start squid
启动squid
访问https试一下
可以访问了
证书不被信任,这是当然的了,我的目的本来就是只增加一个https的访问接口而已
最近因为GFW或者绿坝的原因,访问网站经常connection reset,加了https接口,可以一定程度减轻这个痛苦
用https好像不会被connection reset