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 貢獻者