PAS7 Studio
Zurück zu allen Artikeln

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.

08. Apr. 2026· 7 Min. Lesezeit· Anleitung
Geeignet fürBackend engineersDevOps engineersFounder mit internen BotsTeams beim Wechsel von Polling auf WebhooksEntwickler, die Telegram-Bots auf einem VPS betreiben
Telegram-Bot-Webhook auf einem VPS mit Nginx-Reverse-Proxy und SSL-Zertifikat

Dieses Setup veröffentlicht genau eine öffentliche HTTPS-Route für Telegram und hält den Bot-Prozess selbst privat auf dem Server.

Lassen Sie die Domain auf den VPS zeigen.
Starten Sie den Bot auf einem lokalen Port wie 127.0.0.1:3000.
Nutzen Sie Nginx als öffentlichen Reverse Proxy.
Stellen Sie ein gültiges SSL-Zertifikat mit Let’s Encrypt aus.
Registrieren Sie den Webhook über setWebhook bei Telegram.
Prüfen Sie die Zustellung mit getWebhookInfo.

Bringen Sie den Server zuerst in den Zustand, den Zertifikatsausstellung und Reverse Proxy benötigen.

01

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.

02

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.

03

Ports 80 und 443 öffnen

Port 80 wird für Let’s Encrypt HTTP-01 benötigt, Port 443 für die endgültige HTTPS-Webhook-Route [7][9][10].

04

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.

01

Certbot installieren

Nutzen Sie die offizielle Nginx-Integration, damit Ausstellung und Erneuerung dem dokumentierten Ablauf folgen [7].

02

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.

03

Eine Dry-Run-Erneuerung ausführen

Prüfen Sie die Erneuerung, bevor Sie das Deployment als abgeschlossen betrachten [7][8].

04

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:

NGINX
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:

BASH
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:

BASH
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].

Das Zertifikat ist gültig und die Erneuerung wurde getestet

Lassen Sie certbot renew --dry-run im Deployment-Check nicht weg [7][8].

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.

Für den Webhook normales HTTP verwenden, obwohl Telegram HTTPS verlangt [1][2].

Port 80 während der HTTP-01-Validierung blockieren und dadurch die Zertifikatsausstellung scheitern lassen [7][9].

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.

Brauche ich einen VPS für einen Telegram-Bot-Webhook?

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.

Kann ich getUpdates und einen Webhook gleichzeitig verwenden?

Nein. Solange ein Webhook aktiv ist, deaktiviert Telegram `getUpdates` für diesen Bot.

Welche Ports unterstützt Telegram für Webhooks?

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.

Warum sollte der Bot auf localhost bleiben?

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.

Was prüfe ich zuerst, wenn keine Updates ankommen?

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.

Geprüft: 08. Apr. 2026Gilt für: Telegram Bot API WebhooksGilt für: Single-Server-VPS-DeploymentsGilt für: Nginx Reverse ProxyGilt für: Let’s Encrypt ZertifikatsausstellungGilt für: Ubuntu und Debian-basierte Linux-ServerGetestet mit: Telegram Bot API `setWebhook`Getestet mit: Telegram Bot API `getWebhookInfo`Getestet mit: Nginx `proxy_pass`Getestet mit: SSL-Termination in NginxGetestet mit: Certbot für NginxGetestet mit: Let’s Encrypt HTTP-01 und DNS-01Getestet mit: Firewall-Regeln mit UFW

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

growth

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.

blogs

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.

blogs

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.

telegram-media-saver

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.