Diese Anleitung zeigt Ihnen, wie Sie ein SSL-Zertifikat auf Heroku installieren. Sie behandelt beide Methoden, mit denen Heroku heute TLS beendet: Automated Certificate Management (ACM), das kostenlose Let’s Encrypt-Zertifikate für Sie bereitstellt und erneuert, sowie den manuellen Upload eines Drittanbieter-Zertifikats über das Dashboard oder die Heroku CLI.
Ein paar Dinge sollten Sie vorher wissen. Das veraltete SSL Endpoint-Add-on von Heroku (das kostenpflichtige Produkt für 20 $/Monat) wurde 2021 eingestellt und kann für neue Apps nicht mehr bereitgestellt werden. Jede neue HTTPS-Bereitstellung nutzt Heroku SSL, das auf der SNI-Erweiterung (Server Name Indication) basiert und bei jeder kostenpflichtigen Dyno-Stufe ohne zusätzliche Kosten enthalten ist. Kostenlose Dynos wurden am 28. November 2022 abgeschafft, sodass Sie einen Eco-, Basic-, Standard- oder Performance-Plan benötigen, um eine benutzerdefinierte Domain zu verknüpfen und HTTPS bereitzustellen.
CSR erstellen (für manuell hochgeladene Zertifikate)
Wenn Sie Ihre CSR bereits erstellt und das ausgestellte Zertifikat von Ihrer Zertifizierungsstelle erhalten haben, springen Sie direkt zu SSL-Zertifikat auf Heroku installieren.
Eine CSR benötigen Sie nur, wenn Sie ein Drittanbieter-Zertifikat kaufen, das Sie manuell hochladen möchten. Wenn Sie ACM verwenden möchten, können Sie diesen Abschnitt komplett überspringen: ACM stellt das Zertifikat für Sie aus, und es muss keine CSR eingereicht werden.
Eine CSR (Certificate Signing Request) ist ein Textblock, den Sie während der Bestellung an die Zertifizierungsstelle übermitteln. Sie enthält Ihre Domain- und Organisationsdaten sowie den öffentlichen Schlüssel, für den das Zertifikat ausgestellt wird. Heroku erstellt keine CSRs direkt auf der Plattform, daher erzeugen Sie die Anfrage außerhalb der Plattform. Sie haben zwei Möglichkeiten:
- Nutzen Sie den CSR-Generator von SSL Dragon, der die CSR und den passenden privaten Schlüssel anhand eines kurzen Formulars erstellt.
- Erstellen Sie die Anfrage lokal mit OpenSSL, indem Sie unserer Anleitung zum Erstellen einer CSR für Heroku folgen.
Öffnen Sie die resultierende .csr-Datei in einem beliebigen Texteditor und kopieren Sie den gesamten Block, einschließlich der Markierungen —–BEGIN CERTIFICATE REQUEST—– und —–END CERTIFICATE REQUEST—–, und fügen Sie ihn während Ihrer Bestellung bei SSL Dragon ein. Warten Sie, bis die Zertifizierungsstelle das Zertifikat validiert und ausstellt (von wenigen Minuten bei DV bis zu mehreren Werktagen bei OV/EV), und fahren Sie dann mit der Installation unten fort.
SSL-Zertifikat auf Heroku installieren
Heroku bietet Ihnen zwei Wege zu HTTPS. Wählen Sie den, der zu der Art und Weise passt, wie Sie das Zertifikat erhalten haben:
- ACM (für die meisten Apps empfohlen). Heroku stellt ein kostenloses Let’s Encrypt-Zertifikat für jede benutzerdefinierte Domain der App aus, installiert es und erneuert es automatisch. Keine Dateien zum Hochladen, kein Erneuerungskalender. Verfügbar bei Eco-, Basic-, Standard- und Performance-Dynos.
- Manueller Upload. Nutzen Sie dies, wenn Sie ein bestimmtes Drittanbieter-Zertifikat benötigen (zum Beispiel ein Organization-Validated- oder Extended-Validation-Produkt oder ein Wildcard-Zertifikat von einer anderen Zertifizierungsstelle als Let’s Encrypt). Sie laden das Zertifikat und den privaten Schlüssel selbst über das Dashboard oder die CLI hoch.
Schritt 1. Fügen Sie Ihre benutzerdefinierte Domain zur App hinzu
Heroku stellt kein Zertifikat (ACM oder manuell) bereit, bis Ihre benutzerdefinierte Domain bei der App registriert ist. Führen Sie in einem Terminal mit erhöhten Rechten Folgendes aus:
heroku domains:add www.example.com -a your-app-name
Ersetzen Sie www.example.com durch Ihre Domain und your-app-name durch Ihre Heroku-App. Wiederholen Sie den Befehl für weitere Hostnamen (zum Beispiel eine reine Root-Domain oder eine zweite Subdomain). Sie können die Domain auch über das Dashboard unter Settings > Domains and certificates > Add domain hinzufügen.
Für jede hinzugefügte Domain erhalten Sie ein eindeutiges DNS-Ziel, zum Beispiel quiet-fire-1234.herokudns.com. Diesen Wert benötigen Sie, wenn Sie in Schritt 3 die DNS-Einträge aktualisieren.
Schritt 2. Zertifikat bereitstellen
Option A: ACM (kostenlos, automatisch erneuertes Let’s Encrypt)
Aktivieren Sie ACM für die App über die CLI:
heroku certs:auto:enable -a your-app-name
Heroku beginnt daraufhin, für jede benutzerdefinierte Domain der App ein Let’s Encrypt-Zertifikat auszustellen. Um den Fortschritt zu verfolgen und den Status zu bestätigen, führen Sie Folgendes aus:
heroku certs:auto -a your-app-name
Sie können ACM auch über das Dashboard aktivieren: Öffnen Sie die App, gehen Sie zu Settings > Domains and certificates, klicken Sie auf Configure SSL, wählen Sie Automated Certificate Management und dann Continue. Sobald die DNS-Einträge korrekt gesetzt sind (Schritt 3), schließt ACM die Domain-Validierung ab, und das Zertifikat geht live. Die Erneuerung erfolgt automatisch etwa einen Monat vor Ablauf.
Option B: Manueller Upload eines Drittanbieter-Zertifikats
Die Zertifizierungsstelle liefert drei Dateien in Ihr Postfach:
- Das End-Entity-Zertifikat, meist mit der Erweiterung .crt (PEM-Format).
- Das CA-Bundle (Zwischenzertifikate), häufig mit der Erweiterung .ca-bundle.
- Den privaten Schlüssel, der zusammen mit der CSR erstellt wurde (eine .key-Datei).
Heroku erwartet eine einzelne PEM-Datei, die das End-Entity-Zertifikat gefolgt von den Zwischenzertifikaten enthält (eine sogenannte Fullchain). Unter Linux oder macOS verbinden Sie diese mit cat:
cat yourcertificate.crt bundle.ca-bundle > server.crt
Unter Windows öffnen Sie beide Dateien in einem einfachen Texteditor (Notepad++ oder VS Code, nicht Word) und fügen den Inhalt der .ca-bundle-Datei unterhalb des Inhalts der .crt-Datei ein, in dieser Reihenfolge, ohne Leerzeile zwischen den Blöcken. Speichern Sie die kombinierte Datei als server.crt.
Laden Sie die Fullchain und den privaten Schlüssel mit der Heroku CLI hoch:
heroku certs:add server.crt server.key -a your-app-name
Wenn Sie ein bestehendes Zertifikat der App ersetzen (zum Beispiel im Rahmen einer Erneuerung), verwenden Sie stattdessen certs:update, damit Heroku das gleiche DNS-Ziel beibehält:
heroku certs:update server.crt server.key -a your-app-name
Bevorzugen Sie das Dashboard? Öffnen Sie die App, gehen Sie zu Settings > Domains and certificates, klicken Sie auf Configure SSL, wählen Sie Manually und ziehen Sie die kombinierte server.crt-Datei in das Zertifikatsfeld und die .key-Datei in das Feld für den privaten Schlüssel. Klicken Sie auf Next und bestätigen Sie.
Wenn beim Hochladen ein Internal server error angezeigt wird, ist Ihre lokale Heroku CLI höchstwahrscheinlich veraltet. Aktualisieren Sie sie mit heroku update und versuchen Sie es erneut. Heroku benötigt außerdem RSA-Schlüssel; ECDSA-Schlüssel werden für den manuellen Upload derzeit nicht unterstützt.
Schritt 3. DNS auf das Heroku-DNS-Ziel ausrichten
Unabhängig von der Bereitstellungsmethode geht das Zertifikat erst dann live, wenn der DNS-Eintrag der benutzerdefinierten Domain auf Heroku verweist. Listen Sie Ihre Domains auf und kopieren Sie das von Heroku zurückgegebene DNS-Ziel:
heroku domains -a your-app-name
Sie sehen neben jeder Domain einen Wert wie quiet-fire-1234.herokudns.com. Erstellen Sie bei Ihrem DNS-Anbieter jeweils einen Eintrag pro Domain:
- Subdomain (zum Beispiel www.example.com): Erstellen Sie einen CNAME-Eintrag, der auf das Heroku-DNS-Ziel verweist.
- Apex-/Root-Domain (zum Beispiel example.com): CNAME ist gemäß DNS-Spezifikation auf der Apex-Ebene nicht erlaubt. Verwenden Sie daher einen ALIAS-, ANAME– oder flattened-CNAME-Eintrag (der genaue Name hängt von Ihrem DNS-Anbieter ab), der auf dasselbe Heroku-DNS-Ziel verweist. Falls Ihr DNS-Anbieter keine dieser Optionen unterstützt, hosten Sie DNS bei einem Anbieter, der dies tut (Cloudflare, DNSimple, Route 53, NS1, easyDNS usw.).
Richten Sie DNS niemals auf your-app-name.herokuapp.com oder auf einen *.herokussl.com-Hostnamen aus: ACM kann das Zertifikat darüber nicht validieren, und auch eine manuelle Bindung würde nicht korrekt weiterleiten. Verwenden Sie stets das von Heroku pro Domain zugewiesene DNS-Ziel.
DNS-Änderungen können wenige Minuten bis mehrere Stunden zur Verbreitung benötigen. Sobald Heroku den aktualisierten Eintrag erkennt, schließt ACM die Validierung automatisch ab (oder Ihr manuell hochgeladenes Zertifikat beginnt, Datenverkehr zu bedienen).
Schritt 4. Überprüfen, ob das Zertifikat aktiv ist
Bestätigen Sie die Installation über die CLI:
heroku certs:info -a your-app-name
Die Ausgabe zeigt das Zertifikat, die ausstellende Zertifizierungsstelle, das Ablaufdatum und die abgedeckten Domains an. Öffnen Sie anschließend Ihre Website über https:// im Browser und prüfen Sie, ob das Schlosssymbol angezeigt wird. Führen Sie zusätzlich einen tiefgehenden externen Scan mit unserem SSL Checker durch, um zu bestätigen, dass die Zertifikatskette vollständig ist und die Protokolle korrekt konfiguriert sind.
Häufig gestellte Fragen
Nein. Das veraltete SSL Endpoint-Add-on wurde 2021 eingestellt (die Bereitstellung für neue Nutzer endete am 14. Mai 2021) und erreichte später im selben Jahr sein End of Life. Jede neue App verwendet Heroku SSL mit SNI, das bei jeder kostenpflichtigen Dyno-Stufe kostenlos enthalten ist. Bestehende SSL Endpoints bei langlaufenden Apps funktionieren weiterhin, Heroku empfiehlt jedoch, sie auf Heroku SSL zu migrieren.
Verwenden Sie ACM, sofern es keinen bestimmten Grund gibt, dies nicht zu tun. Es ist kostenlos, erneuert jedes Zertifikat automatisch etwa einen Monat vor Ablauf und erspart Ihrem Team den Erneuerungskalender. Entscheiden Sie sich für den manuellen Upload, wenn Sie ein Domain-Validated-, Organization-Validated- oder Extended-Validation-Zertifikat einer bestimmten Zertifizierungsstelle, ein Wildcard-Zertifikat oder ein Multi-Domain-Zertifikat (SAN) benötigen, das Hostnamen abdeckt, die nicht alle zu dieser Heroku-App gehören.
Nein. Kostenlose Dynos wurden am 28. November 2022 abgeschafft. Benutzerdefinierte Domains und SSL (sowohl ACM als auch manuell) erfordern einen kostenpflichtigen Plan: Eco, Basic, Standard oder Performance. Seit November 2025 werden ACM- und manuelle Zertifikate beide auf Eco-Dynos unterstützt, was der kostengünstigste Weg zu HTTPS auf einer benutzerdefinierten Domain ist.
Zwei häufige Ursachen. Erstens zeigt der DNS-Eintrag noch auf *.herokuapp.com statt auf das von Heroku pro Domain zugewiesene DNS-Ziel (etwa quiet-fire-1234.herokudns.com). Überprüfen Sie den Eintrag bei Ihrem DNS-Anbieter und aktualisieren Sie ihn. Zweitens wurde der DNS-Eintrag geändert, die Verbreitung ist aber noch nicht abgeschlossen; warten Sie einige Minuten bis Stunden und führen Sie dann heroku certs:info -a your-app-name aus, um dies zu bestätigen.
Mit ACM müssen Sie das nicht selbst tun: Heroku stellt das Zertifikat automatisch etwa einen Monat vor Ablauf erneut über Let’s Encrypt aus. Bei einem manuellen Zertifikat bestellen Sie die Erneuerung (mit einer neuen CSR), erstellen eine neue Fullchain-Datei und führen heroku certs:update server.crt server.key -a your-app-name aus. Die Verwendung von certs:update statt certs:add erhält das bestehende DNS-Ziel, sodass Sie die DNS-Einträge nicht erneut anpassen müssen. Öffentliche SSL/TLS-Zertifikate sind derzeit auf etwa ein Jahr begrenzt. Planen Sie also, dies jährlich zu wiederholen, wenn Sie beim manuellen Upload bleiben, oder wechseln Sie zu ACM und lassen Sie Heroku die Aufgabe übernehmen.
Fast immer liegt es an einer veralteten Heroku CLI. Führen Sie heroku update aus, um auf die neueste Version zu aktualisieren, und versuchen Sie den Befehl erneut. Besteht der Fehler weiterhin, prüfen Sie, ob die Zertifikatsdatei eine Fullchain im PEM-Format ist (End-Entity-Zertifikat zuerst, danach die Zwischenzertifikate) und ob der private Schlüssel ein RSA-Schlüssel ist, der zu der bei der Zertifizierungsstelle eingereichten CSR passt.
Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!
Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10


