Telegram Bot Webhook + VPS + Nginx + SSL: Schritt-für-Schritt ins Production-Setup
Eine klare Anleitung für die Bereitstellung eines Telegram-Bot-Webhooks auf einem VPS mit Nginx und SSL: Domain, lokaler Bot-Prozess, Let’s-Encrypt-Zertifikat, Reverse Proxy, Webhook-Registrierung und abschließende Prüfung.

Kurz gesagt
Dieses Setup veröffentlicht genau eine öffentliche HTTPS-Route für Telegram und hält den Bot-Prozess selbst privat auf dem Server.
127.0.0.1:3000.setWebhook bei Telegram.getWebhookInfo.Bringen Sie den Server zuerst in den Zustand, den Zertifikatsausstellung und Reverse Proxy benötigen.
Die Domain auf die öffentliche VPS-IP zeigen lassen
Legen Sie einen A-Record für den Hostnamen an, den Sie für den Webhook verwenden, zum Beispiel bot.example.com.
Den Bot auf localhost betreiben
Binden Sie die Bot-Anwendung an 127.0.0.1:<port>. Stellen Sie die Anwendung nicht direkt auf einer öffentlichen Schnittstelle bereit.
Die öffentliche Kante einfach halten
Leiten Sie öffentlichen Traffic ausschließlich über Nginx. Die Bot-Anwendung verarbeitet Updates, nicht TLS, Redirects oder öffentliche Routen.
Erforderlicher Ausgangszustand
DNS muss auf den VPS auflösen, der Bot muss lokal lauschen und die Ports 80 und 443 müssen erreichbar sein.
Stellen Sie das Zertifikat aus, bevor Sie den Webhook auf die endgültige HTTPS-Route umstellen.
Certbot installieren
Nutzen Sie die offizielle Nginx-Integration, damit Ausstellung und Erneuerung dem dokumentierten Ablauf folgen [7].
Das Zertifikat für den Webhook-Host ausstellen
Fordern Sie das Zertifikat für genau den Hostnamen an, den Sie später bei Telegram registrieren.
DNS-01 nur nutzen, wenn HTTP-01 nicht möglich ist
Wechseln Sie auf DNS-01, wenn Port 80 nicht verfügbar ist oder wenn ein Wildcard-Zertifikat benötigt wird [9].
Ergebnis
Der Server besitzt jetzt ein gültiges Zertifikat für die Webhook-Domain und ist bereit für die finale HTTPS-Nginx-Konfiguration.
Verwenden Sie einen HTTP-Serverblock für den Redirect und einen HTTPS-Serverblock für den finalen Reverse Proxy. Leiten Sie nur den Webhook-Pfad an den lokalen Bot-Prozess weiter [4][5][6].
Verwenden Sie eine Konfiguration in dieser Form:
server {
listen 80;
listen [::]:80;
server_name bot.example.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name bot.example.com;
ssl_certificate /etc/letsencrypt/live/bot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bot.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
client_max_body_size 20m;
location = /healthz {
add_header Content-Type text/plain;
return 200 "ok\n";
}
location /telegram/webhook {
proxy_pass http://127.0.0.1:3000/telegram/webhook;
proxy_http_version 1.1;
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
return 404;
}
}Laden Sie Nginx nach dem Speichern der Konfiguration neu. Der Bot bleibt privat auf 127.0.0.1, und Telegram erreicht ausschließlich die HTTPS-Route, die Nginx veröffentlicht.
Wirkung dieser Konfiguration
HTTP leitet auf HTTPS weiter, HTTPS terminiert TLS, und nur der Webhook-Pfad erreicht den Bot-Prozess.
Registrieren Sie die endgültige öffentliche HTTPS-URL erst dann, wenn Nginx und SSL bereits funktionieren. Übergeben Sie ein secret_token und prüfen Sie es in der Anwendung über den Header X-Telegram-Bot-Api-Secret-Token [1].
Registrieren Sie den Webhook:
curl -X POST "https://api.telegram.org/bot$BOT_TOKEN/setWebhook" -d "url=https://bot.example.com/telegram/webhook" -d "secret_token=replace_with_a_long_random_value" -d 'allowed_updates=["message","callback_query"]'Prüfen Sie danach den Status:
curl "https://api.telegram.org/bot$BOT_TOKEN/getWebhookInfo"Begrenzen Sie mit allowed_updates die Zustellung auf die Update-Typen, die der Bot tatsächlich verarbeitet. Wenn keine Updates ankommen, lesen Sie pending_update_count und die letzte Fehlermeldung in getWebhookInfo [1].
Regel für die Registrierung
Registrieren Sie den Webhook erst dann, wenn der HTTPS-Endpoint bereits erreichbar und gültig ist.
Gehen Sie diese Punkte durch, nachdem der Webhook registriert wurde.
Die Domain löst auf die öffentliche VPS-IP auf
Prüfen Sie genau den Hostnamen, den Sie in setWebhook eingetragen haben.
Der Bot lauscht nur auf localhost
Halten Sie den Prozess auf 127.0.0.1:<port>.
Die Ports 80 und 443 sind offen
Prüfen Sie sowohl die Host-Firewall als auch Netzregeln auf Provider-Seite [10].
Nginx proxyt nur den Webhook-Pfad
Vermeiden Sie breit gefasste öffentliche Proxy-Regeln für die gesamte Anwendung.
Die Anwendung prüft den Secret-Token-Header
Weisen Sie Requests zurück, deren Token nicht dem konfigurierten Wert entspricht [1].
Telegram meldet einen gesunden Webhook-Status
Prüfen Sie getWebhookInfo nach den ersten Live-Requests [1].
Zielzustand
Ein sauberes Deployment hat ein gültiges Zertifikat, genau eine öffentliche HTTPS-Route und einen privaten Bot-Prozess.
Die meisten Webhook-Ausfälle gehen auf wenige wiederkehrende Fehler zurück.
Den Bot auf 0.0.0.0 betreiben und direkt ins Internet stellen.
Den Webhook registrieren, bevor der HTTPS-Endpoint erreichbar ist.
Jeden POST auf der Webhook-Route akzeptieren, ohne das Secret Token zu prüfen [1].
Schwere synchrone Arbeit direkt im Webhook-Request ausführen, statt schnell zu bestätigen.
Vergessen, dass getUpdates bei aktivem Webhook nicht funktioniert [1].
Das Muster dahinter
Fehler entstehen hier fast immer durch falsche Veröffentlichung, falsche Reihenfolge oder fehlende Request-Prüfung.
Sie brauchen einen öffentlichen HTTPS-Endpoint, den Telegram zuverlässig erreichen kann. Ein VPS ist der einfachste Weg, Domain, Nginx, Zertifikatsausstellung und Firewall-Regeln an einem Ort zu kontrollieren.
Nein. Solange ein Webhook aktiv ist, deaktiviert Telegram `getUpdates` für diesen Bot.
Telegram dokumentiert Unterstützung für die Ports 443, 80, 88 und 8443. In den meisten produktiven Setups ist 443 der richtige öffentliche HTTPS-Einstiegspunkt.
So bleibt die Anwendung außerhalb der öffentlichen Angriffsfläche. Nginx nimmt den externen HTTPS-Traffic entgegen, und der Bot sieht nur interne Proxy-Requests.
Prüfen Sie zuerst die öffentliche HTTPS-Route und rufen Sie dann `getWebhookInfo` auf. Lesen Sie dort die letzte Fehlermeldung und `pending_update_count`.
Diese Quellen stützen das Verhalten von Telegram-Webhooks, den Nginx-Reverse-Proxy, den SSL-Ablauf und die Firewall-Hinweise in diesem Tutorial.
PAS7 Studio unterstützt Teams bei der Bereitstellung von Telegram-Bots mit stabilem Webhook-Routing, Reverse Proxy, automatischer Zertifikatserneuerung, App-Prozess-Management, Migration von Polling und Production-Hardening des gesamten Stacks.
Verwandte Artikel
AI SEO / GEO im Jahr 2026: Ihre nächsten Kunden sind nicht Menschen — sondern Agents
Suche verschiebt sich von Klicks zu Antworten. Bots und AI-Agents crawlen, zitieren, empfehlen — und kaufen zunehmend. Erfahren Sie, was AI SEO / GEO bedeutet, warum klassisches SEO nicht mehr reicht und wie PAS7 Studio Marken im agentischen Web sichtbar macht.
Der leistungsstärkste Chip von Apple? M5 Pro und M5 Max brechen Rekorde
Eine Analyse zu Apple M5 Pro und M5 Max im März 2026. Wir zeigen, warum diese Chips als die stärksten professionellen Laptop-SoCs von Apple gelten können, wie sie sich gegen M4 Pro, M4 Max, M1 Pro, M1 Max schlagen und was der Vergleich mit aktuellen Intel- und AMD-Chips zeigt.
Artemis II und der Code, der Menschen zum Mond trägt
Dieser Beitrag erklärt die NASA-Mission Artemis II, die am 1. April 2026 gestartet ist, und zeigt, was sie wirklich über moderne Technik erzählt: Flugsoftware, Backup-Logik, Simulationen, Telemetrie, menschliche Kontrolle und die vorsichtige Rolle von KI in Raumfahrtsystemen.
Automatisches Tagging und Suche für gespeicherte Links
Integration mit GDrive/S3/Notion für automatisches Tagging und schnelle Suche über Such-APIs
Professionelle Entwicklung für Ihr Geschäft
Wir erstellen moderne Web-Lösungen und Bots für Unternehmen. Erfahren Sie, wie wir Ihnen helfen können, Ihre Ziele zu erreichen.