RPi3无线接入点中Captive-Portal的HTTPS请求URL

时间:2016-06-11 08:59:29

标签: nginx https sinatra raspberry-pi3 captiveportal

我正在运行一个媒体艺术项目,使用Rasp Pi 3作为带有强制门户的无线接入点。我使用iptables将数据包重定向到Sinatra,我可以获取设备发送的请求URL。

问题在于,如果用户的请求是Facebook,Google或其他任何HTTPS网站,显然无法读取数据包。

因此,我试图建立反向porxy并更改iptables'通过以下链接将目标重定向到nginx服务器,以便在HTTPS下解码请求URL: http://www.htpcguides.com/enforce-ssl-secure-nginx-reverse-proxy-linux/

这就是我改变iptables的方式

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:443
sudo iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:53
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:4567

这就是我配置我的nginx的方式:(端口4567是sinatra听过的)

server {
        listen 80;
        server_name 192.168.0.1 localhost;
        return 301 http://192.168.0.1:4567;

        access_log /var/log/nginx/backintime-access80.log;
        error_log /var/log/nginx/backintime-error80.log;
}

server {
        listen 443 ssl;
        server_name 192.168.0.1 localhost;
        root /home/backintime/new-back-in-time/public/;
        ssl_certificate /etc/ssl/backintime.studio.ssl/backintime.studio.crt;
        ssl_certificate_key /etc/ssl/backintime.studio.ssl/backintime.studio.key;

        location / {
                proxy_pass http://192.168.0.1:4567;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header client_ip $remote_addr;
                proxy_set_header remote_ip $remote_addr;
        }

        access_log /var/log/nginx/backintime-access.log;
        error_log /var/log/nginx/backintime-error.log;
}

现在我被困在这里了。我认为nginx服务器无法识别我通过iptables重定向的数据包。其次是proxy_pass似乎没有向我的sinatra发送任何东西。

还有其他方法可以解决这个问题吗?或者我的哪部分工作是错的?

感谢。

0 个答案:

没有答案