2014年9月29日星期一

使用Apache2搭建Google加密反向代理

几个月前Google就被从IPv4网络上彻底干掉了,但是IPv6网络的用户并没有受到什么影响,或许是用户数量少的缘故吧。不过从今天早晨开始,IPv6下加密访问Google也开始变得不正常了——每次用Chrome打开“https://www.google.com.hk/”,都会提示“您的连接不是私密连接,攻击者可能会试图从www.google.com.hk窃取您的信息”。从目前已知的信息来看,应该是Google的SSL证书在传输过程中被人为干扰了。
Google的不能正常使用使我的工作受到了严重影响,所以我只能想办法解决喽。恰好我前段时间入手了一枚RamNode的VPS,所以我便用这枚VPS搭建一个反向代理。从效果来看,确实还不错,而且比用VPN要方便得多。
下边把配置步骤简单地写一下吧。
1.从StartSSL申请一个域名证书,或者使用证书生成工具生成一张自签名的证书,并将生成的crt文件和key文件上传到服务器;
2.在Apache2的conf.d目录下新建一个名为“google_proxy.conf”的虚拟主机配置文件;
touch google_proxy.conf
3.在其中配置一台监听443端口的虚拟主机,配置域名和证书的路径,添加反向代理的域名(www.google.com 或者 www.google.co.jp ,反代Google香港会自动跳转);
<VirtualHost _default_:443>
ServerAdmin mail@localhost
DocumentRoot “/var/www/html”
ServerName 你的域名:443
SSLEngine On
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile crt文件路径
SSLCertificateKeyFile key文件路径
#SSLCertificateChainFile pem文件路径,可选
SetEnvIf User-Agent “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SSLProxyEngine On
RequestHeader set Front-End-Https “On”
ProxyPass / https://www.google.com/
ProxyPassReverse / https://www.google.com/
CacheDisable *
</VirtualHost>
4.强制使用HTTPS访问,将使用HTTP协议访问的用户强制重定向到HTTPS;
<VirtualHost _default_:443>
ServerAdmin mail@localhost
DocumentRoot “/var/www/html”
ServerName 你的域名:80
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
</VirtualHost>
5.重启Apache服务,输入证书的导出密码,重启完成。
service httpd restart
至此,安装结束。
附示例:我的配置文件

没有评论:

发表评论