Um proxy inverso recebe HTTPS na porta 443 e encaminha pedidos para aplicações internas. Caddy ou Nginx Proxy Manager podem desempenhar essa função. Os respetivos painéis administrativos ficam privados.
Configuração
- Reserve o endereço LAN do proxy.
- Configure DNS para o IP público e DDNS se necessário.
- Encaminhe TCP 443 para o proxy.
- Associe cada nome à aplicação interna correta.
Certificados
HTTP-01 exige normalmente a porta 80 acessível. DNS-01 valida um registo DNS e também serve para serviços privados. Use um token API com os direitos necessários: um token DDNS não é automaticamente um token da API DNS. Um certificado wildcard cobre um nível adicional, não a raiz da zona.
Verificações
Configure proxies de confiança, WebSockets e limites de envio. Teste a renovação automática e o carregamento efetivo do novo certificado.
Exemplos de configuração
Adapte valores, interfaces e portas. Os exemplos podem corresponder a versões diferentes: não execute alternativas incompatíveis em conjunto. Nunca publique tokens reais nem chaves privadas.
ha.yourname.uk.app {
reverse_proxy 192.168.1.20:8123
}
films.yourname.uk.app {
reverse_proxy 192.168.1.30:8096
}
cloud.yourname.uk.app {
reverse_proxy 192.168.1.40:11000
}sudo systemctl reload caddy
journalctl -u caddy -f # watch the certificates being issued# as root on the proxy machine (sudo -i)
apt install unzip python3 curl
curl https://get.acme.sh | sh -s email=you@example.com
curl -fsSLO https://uk.app/downloads/ukapp-tools.zip && unzip ukapp-tools.zip
install -m 755 ukapp.py /usr/local/bin/ukapp
cp dns_ukapp.sh ~/.acme.sh/dnsapi/
install -m 600 /dev/null /root/.ukapp-api-token
nano /root/.ukapp-api-token # paste the API token, saveexport UKAPP_TOKEN="$(cat /root/.ukapp-api-token)"
~/.acme.sh/acme.sh --issue --server letsencrypt --dns dns_ukapp --dnssleep 300 \
-d yourname.uk.app -d '*.yourname.uk.app'mkdir -p /etc/caddy/certs
~/.acme.sh/acme.sh --install-cert -d yourname.uk.app --ecc \
--fullchain-file /etc/caddy/certs/fullchain.pem \
--key-file /etc/caddy/certs/key.pem \
--reloadcmd "chown -R caddy:caddy /etc/caddy/certs && systemctl reload caddy"(wildcard) {
tls /etc/caddy/certs/fullchain.pem /etc/caddy/certs/key.pem
}
ha.yourname.uk.app {
import wildcard
reverse_proxy 192.168.1.20:8123
}cat > /usr/local/sbin/acme-renew <<'EOF'
#!/bin/sh
UKAPP_TOKEN="$(cat /root/.ukapp-api-token)"
export UKAPP_TOKEN
exec /root/.acme.sh/acme.sh --cron --home /root/.acme.sh
EOF
chmod 700 /usr/local/sbin/acme-renew
~/.acme.sh/acme.sh --uninstall-cronjob
echo '17 3 * * * root /usr/local/sbin/acme-renew >/var/log/acme-renew.log 2>&1' > /etc/cron.d/acme-renewVerificações finais
Teste com dados móveis fora do Wi-Fi. Confirme separadamente DNS, porta prevista, certificado HTTPS válido e autenticação. Mantenha painéis administrativos privados, instale atualizações e teste recuperar uma cópia. Verifique firewalls IPv6 e IPv4. Um teste de porta bem-sucedido não é uma auditoria de segurança.
Esta edição localizada resume o guia original. Os comandos mantêm a sintaxe original. Consulte a documentação do fabricante para a sua versão exata.