Si vous avez besoin d'une URL HTTPS stable pour la console OpenClaw Gateway, les webhooks ou les intégrations, exposer le port de l'application directement à Internet est rarement l'état final. Ce guide s'adresse aux équipes qui exécutent déjà OpenClaw sur du bare metal ou sur un Mac distant et qui envisagent de le rendre public :table de décision par proxy direct ou inverse, extraits minimes de Nginx et Caddyavec des en-têtes compatibles WebSocket, unListe de contrôle TLS et pare-feu, et unChemin de vérification compatible VNCdu bouclage vers un autre réseau. Les liens croisés pointent vers Docker, les erreurs courantes et le dépannage silencieux « sans réponse » sur ce site.
1. Problèmes liés à l’exposition de Gateway sans proxy
- HTTP simple et confiance :les informations d'identification et les rappels sur Internet ouvert sans TLS sont fragiles ; de nombreux fournisseurs exigent HTTPS.
- WebSockets sous transfert naïf :manquant
Upgrade/Connectionou les délais d'attente agressifs ressemblent à des « déconnexions aléatoires » dans l'interface utilisateur. - Surface d'attaque plus grande :la publication du port de l'application augmente directement le bruit de numérisation ; un proxy est l'endroit où vous joignez des listes d'autorisation, des limites de débit et des journaux d'accès cohérents.
- Points aveugles du Mac distant :« SSH fonctionne » ne prouve pas que le pare-feu macOS et les groupes de sécurité cloud correspondent à ce que vous voyez dans VNC.
- Écouteurs Docker vs hôte :
127.0.0.1contre0.0.0.0modifie l'endroit où le proxy doit s'exécuter : consultez le guide officiel Docker sur ce site.
2. Table de décision : direct vs TLS + proxy inverse
| Dimension | Port public direct | TLS + Nginx/Caddy |
|---|---|---|
| Cryptage | Vous devez mettre fin à TLS dans l'application ou rester sur HTTP | Terminez TLS en périphérie ; en amont peut rester HTTP en boucle |
| WebSocket | Chaque saut doit coopérer | En-têtes/timeouts explicites sur Nginx ; Caddy se met généralement à niveau automatiquement |
| Services multiples | Un port par service | Hôtes virtuels sur une seule IP |
| Opérations | Moins de pièces mobiles au jour zéro | Service supplémentaire, meilleure sécurité et observabilité à long terme |
| Dépannage sur VNC | Des tests plus difficiles à superposer | curl -vcontre amont puis contrehttps://domain |
3. Quand ajouter Nginx ou Caddy
- Vous avez besoin d'un domaine stable et de HTTPS pour les favoris, les redirections OAuth ou les webhooks.
- Le comportement de l’interface utilisateur en temps réel se dégrade sur les longs chemins sans une gestion appropriée des mises à niveau.
- Vous hébergez d'autres sites sur le même Mac distant et souhaitez une histoire de certificat.
- La politique autorise uniquement le 443/80 depuis Internet pendant que l'application reste en boucle.
openclaw doctorsuggère de lier les services sensibles à localhost et de les présenter avec un proxy (suivez la sortie de votre version).
4. Nginx minimal : 18789, hôte, WebSocket
Extrait d'enseignement : remplacez les noms d'hôte, les chemins de certificat et le port en amont. Renforcement pour la production (chiffrements, agrafage OCSP, rédaction de journalisation, limites de débit).
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name claw.example.com;
ssl_certificate /etc/letsencrypt/live/claw.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/claw.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
Utilisez HTTP/1.1 vers l'amont, transférezUpgrade/Connection, et gardez les en-têtes honnêtes afin que l'application connaisse le schéma client.
5. Minimal Caddy : HTTPS automatique
claw.example.com {
reverse_proxy 127.0.0.1:18789
}
Caddy obtient et renouvelle les certificats lorsque les ports 80/443 sont accessibles pour ACME. Ajoutez des correspondants, des en-têtes supplémentaires ou des filtres IP selon vos besoins.
6. Certificats, DNS, groupes de sécurité
DNS pointe vers l'entrée publique
Vérifier les enregistrements A/AAAA ; si un CDN fait face à l'hôte, confirmez que WebSocket et les chemins de défi fonctionnent toujours.
Pare-feu cloud
Autorisez 443 et généralement 80 pour HTTP-01 ; gardez 18789 en dehors de l'ensemble de règles publiques lors de l'utilisation du bouclage en amont.
Pare-feu macOS dans VNC
Vérifiez les paramètres du système ; distinguer nginx/caddy du processus OpenClaw.
Rechargement de renouvellement
Après les renouvellements, rechargez nginx ou laissez Caddy récupérer les certificats afin de ne pas expirer silencieusement.
Tests de boucles en couches
Bouclage en amont, puis HTTPS local, puis réseau externe.
6b. Listes d'autorisation IP facultatives et limites de débit
Pour les petites équipes, limitez les surfaces d’administration par adresse IP source ou sortie VPN. Sur l'utilisation de Nginxallow/denyou un WAF ; sur Caddy, utilisez des matchers tels queremote_ipselon vos documents de version. Ajouterlimit_req(ou équivalent) sur les points de terminaison chauds afin que la force brute et les boucles accidentelles ne suppriment pas la passerelle.
Pour les webhooks, préférez la vérification de signature auprès du fournisseur ; Les plages IP peuvent changer. Documentez les listes d'autorisation et l'expiration des certificats sur un calendrier.
7. Vérification en sept étapes sur un Mac distant VNC
- Dans un terminal VNC, exécutez
openclaw doctoret confirmez que les adresses d'écoute correspondent à la configuration. curl -v http://127.0.0.1:18789/(ou votre amont) et vérifiez les codes d'état.- Validez la syntaxe nginx/caddy et rechargez proprement.
- Ouvrir
https://your-domaindans un navigateur sur Mac ; confirmez WebSocket 101 dans les outils de développement. - Retestez à partir de données mobiles ou d'un autre réseau pour éviter les faux positifs uniquement sur le réseau local.
- Corrélez les journaux d'accès au proxy avec les journaux OpenClaw lors du débogage des échecs silencieux (voir l'article sur la non-réponse).
- Après les modifications du pare-feu, attendez la propagation et réexécutez le test externe.
8. Paramètres citables et guides associés
proxy_read_timeoutles valeurs brisent les liens de longue durée ; commencez par des délais d'attente en amont généreux et ajustez à partir des métriques.Pour les erreurs d’installation et d’exécution, lisezerreurs courantes et dix correctifs. Pour les chaînes silencieuses, suivezdépannage sans réponse. Pour les conteneurs, commencez à partir deDocker Compose officiel sur un Mac distant.
Clôture : pourquoi VNC sur un Mac distant est toujours utile
La configuration de Public Gateway combine TLS, connexions de longue durée et pare-feu au niveau du système d'exploitation – difficile à déboguer à partir de SSH uniquement lorsque vous avez besoin d'un navigateur et d'invites système au même endroit. La location d'un Mac distant compatible VNC (comme celui de VNCMac) vous permet d'exécuter Doctor, de recharger des proxys et de valider visuellement les WebSockets sans acheter de matériel dont vous avez uniquement besoin pour un court projet. Gardez le Edge verrouillé : TLS sur 443, bouclage en amont, ainsi que le Docker et les publications de dépannage de ce site comme runbook.