HTTPS e acesso remoto

O navegador pode usar o posto localmente em http://127.0.0.1:8080 . O aplicativo iOS precisa de uma origem HTTPS acessível com um certificado confiável. No seu telefone, localhost refere-se ao próprio telefone.

Escolha um endereço

Use um nome de host que resolva para o servidor posto das redes onde você usará o Mailwake. Uma rede privada ou VPN é adequada quando tanto o telefone quanto o servidor podem acessá-la. Verifique o DNS, as regras de firewall e a validade do certificado do telefone antes de criar um convite.

Mantenha a porta 8080 do posto vinculada ao loopback ou a uma rede Docker privada. Publique o endpoint HTTPS do proxy reverso. Use uma origem dedicada como https://mail.example.org, servindo o posto em /.

Proxy reverso no host

Com o Caddy instalado no mesmo host, substitua o nome do host de exemplo e configure o DNS e as portas 80/443 para emissão de certificados:

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

Para nginx, forneça o certificado e sua chave e preserve o Host original:

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;
    }
}

Um proxy em um contêiner deve chegar ao posto por meio de sua rede Docker compartilhada; 127.0.0.1 dentro desse contêiner atinge apenas o contêiner de proxy. Exponha o posto apenas ao proxy ou a clientes confiáveis, porque os pares de proxy de rede privada podem fornecer cabeçalhos de encaminhamento.

Verifique pelo telefone

Abra a origem HTTPS no Safari. Confirme se a página carrega com um certificado válido, faça login e salve uma configuração inofensiva para verificar cabeçalhos de proxy e solicitações de gravação. Então conecte o aplicativo. Se o Safari falhar, resolva primeiro os problemas de DNS, roteamento ou certificado.

Após alterar o endereço público, crie um novo convite com a nova origem e reconecte o App. O endereço armazenado da sua conexão deve corresponder ao endereço no qual você pretende confiar.

Markdown · AGPL-3.0-only · Colaboradores do Mailwake