То, что начиналось как проект, позволяющий другу получать доступ к своей электронной почте из сети, которая заблокировала доступ к gmail, теперь заинтриговало меня, почему это сложно.
Я настроил небольшой обратный прокси-сервер nginx, чтобы попробовать это, с vhost, настроенным как
server {
server_name my.host.com;
resolver 8.8.8.8 ipv6=off;
location / {
proxy_buffering off;
proxy_pass https://mail.google.com/;
proxy_set_header HOST $host;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /.well-known {
allow all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/my.host.com/fullchain.pem;
# managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my.host.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = my.host.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name my.host.com;
return 404; # managed by Certbot
}
... Я прошел через несколько итераций, но что происходит прямо сейчас, если вы получаете доступ к https://my.site.com
, если вы перенаправлены на https://my.site.com/mail
с 404, которые были отправлены из Google с сообщением «запрошенный URL / mail / не был найдено на этом сервере "
Ладно, интересно, но я перебрал несколько вещей ... возникли проблемы с редиректами на accounts.google.com и т. Д.
Теперь я ценю то, что пытаюсь обойти чьи-то правила, но я также удивлен, что не смог найти чёткого и очевидного конфига для этого (похоже, такое решение было решено несколько раз). И в любом случае я бы хотел узнать, чего мне не хватает. Любая помощь?