安全连接转发

为了把到http://*.fb.com:80的请求转到https://*.fb.com:443,可以通过在本地设置Chrome的HSTS,可是不是人人都用Chrome。于是我就遇到了一个奇怪的需求:在局域网里把对某域名的所有非安全请求重定向到安全连接。
网上有不少人试着通过iptables来劫持请求并强行转发给别的端口,不过总是失败。毕竟发起的是http连接,直接暴力转去443端口当然不行。
于是我做了以下的配合:
1 iptables
iptables -t nat -A PREROUTING -p tcp -d www.facebook.com –dport 80 -j DNAT –to 192.168.1.1
2 apache转发
<VirtualHost *>
ServerName facebook.com:80
ServerAlias www.facebook.com
ErrorLog logs/facebook.com-error_log
Options +FollowSymLinks
RewriteEngine on
RedirectMatch ^/(.*)$ https://www.facebook.com/$1 [R=301]
</VirtualHost>

自此,所有内网的http请求都会被拦截到192.168.1.1,然后得到跳转到安全连接的http 302响应。客户端发出的https请求则被放行。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Powered by WordPress. Design: Supermodne.