HTTPS 与远程访问

本机浏览器可以通过 http://127.0.0.1:8080 使用哨站。iOS App 需要手机能访问、且证书受信任的 HTTPS 地址。手机上的 localhost 指手机本身。

选择访问地址

使用在实际使用网络中能解析到哨站服务器的域名。手机和服务器能够互通时,也可以通过私有网络或 VPN 访问。创建邀请前,先在手机上确认 DNS、防火墙和证书都正常。

哨站的 8080 端口保持绑定回环地址或私有 Docker 网络,由反向代理提供 HTTPS。建议使用独立域名,例如 https://mail.example.org,让哨站从 / 路径提供服务。

在宿主机配置反向代理

Caddy 安装在同一宿主机时,替换以下示例域名,并配置 DNS 和签发证书所需的 80/443 端口:

caddyfile
mail.example.org {
    reverse_proxy 127.0.0.1:8080
}

使用 nginx 时,填写证书路径并保留原始 Host:

nginx
server {
    listen 443 ssl;
    server_name mail.example.org;
    ssl_certificate /etc/letsencrypt/live/mail.example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.example.org/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

容器中的代理应通过共享 Docker 网络访问哨站;代理容器里的 127.0.0.1 指向代理容器本身。哨站监听端口仅开放给代理或可信客户端,因为私网代理可以传入转发头。

从手机验证

先用 Safari 打开 HTTPS 地址,确认证书有效、页面可访问,再登录并保存一项设置,验证代理头和写请求正常。随后连接 App。Safari 无法访问时,先解决域名、网络或证书问题。

更换对外地址后,用新地址创建邀请并重新连接 App。连接中保存的地址应当与你确认信任的地址一致。

Markdown · AGPL-3.0-only · Mailwake 贡献者