bg-tutorials

So installieren Sie ein ACME SSL-Zertifikat auf FortiGate

Diese Anleitung zeigt Ihnen, wie Sie SSL-Zertifikate auf FortiGate-Firewalls installieren und automatisieren. Dazu verwenden Sie das ACME-Protokoll mit External Account Binding (EAB), die Standardmethode, die kommerzielle Zertifizierungsstellen für die sichere Automatisierung verwenden.

Frotigate ACME SSL

Sie lernen zwei Möglichkeiten der Bereitstellung kennen:

  1. Native FortiGate ACME-Integration mit EAB-Anmeldeinformationen
  2. Externe Ausgabe mit ACME.sh, gefolgt vom Import in FortiGate

Beide Methoden sind mit kommerziellen ACME-Endpunkten kompatibel, die Zertifikate über KID + HMAC-Authentifizierung ausstellen.


Bevor Sie beginnen

Das brauchen Sie:

  • FortiGate 7.6.0 oder neuer (frühere Versionen unterstützen EAB nicht)
  • Root- oder Admin-Zugriff auf die FortiGate CLI
  • ACME-Verzeichnis-URL von Ihrem Zertifikatsanbieter
  • EAB-Berechtigungsnachweise (Schlüssel-ID + HMAC-Schlüssel)
  • Ein Domainname mit gültigen A/AAAA DNS-Einträgen, die auf die öffentliche IP-Adresse Ihres FortiGate verweisen
  • Port 80 ist für die HTTP-01-Validierung aus dem Internet erreichbar

Schritt 1: Prüfen Sie Ihre Firmware-Version

Verwenden Sie die Befehlszeilenschnittstelle, um Ihre FortiOS-Version zu überprüfen:

get system status

Vergewissern Sie sich, dass FortiOS 7.6.0 oder eine neuere Version angezeigt wird. Falls nicht, aktualisieren Sie zuerst. Ältere Versionen enthalten die Felder acme-eab-key-id und acme-eab-key-hmac nicht.


Schritt 2: Erstellen Sie ein lokales Zertifikatsobjekt für ACME

Führen Sie den folgenden Befehl aus:

config vpn certificate local
    edit "acme-vpn-cert"
        set enrollment acme
        set acme-ca-url "https://acme.yourca.com/v2/acme"
        set acme-eab-key-id "YOUR_EAB_KID"
        set acme-eab-key-hmac "YOUR_EAB_HMAC_KEY"
        set acme-email "[email protected]"
        set acme-domain "vpn.example.com"
        set acme-auth-url "http://vpn.example.com/.well-known/acme-challenge"
        set auto-regenerate-days 30
        set auto-regenerate enable
    next
end

Dieser Befehl erstellt ein neues lokales Zertifikatsobjekt mit dem Namen acme-vpn-cert und weist FortiGate an, es automatisch von Ihrer kommerziellen Zertifizierungsstelle anzufordern und zu erneuern, indem es das ACME-Protokoll mit External Account Binding verwendet.

Die wichtigsten Teile erklärt:

  • set enrollment acme: teilt FortiGate mit, dass dieses Zertifikat über ACME verwaltet wird und nicht manuell importiert wird.
  • set acme-ca-url: den ACME-Verzeichnisendpunkt Ihrer Zertifizierungsstelle.
  • set acme-eab-key-id / set acme-eab-key-hmac: Ihre EAB-Anmeldedaten (KID und HMAC), die Ihr Konto bei der CA autorisieren.
  • set acme-email: Wird für Verlängerungsbenachrichtigungen und den CA-Kontakt verwendet.
  • set acme-domain: die Domäne, die FortiGate validiert und sichert.
  • set acme-auth-url: der HTTP-Speicherort, an dem die CA die ACME-Challenge platziert und verifiziert.
  • set auto-regenerate und auto-regenerate-days: Aktivieren Sie die automatische Erneuerung vor Ablauf.

Schritt 3: Überprüfen Sie den Validierungspfad

Ihr FortiGate muss auf http://vpn.example.com/.well-known/acme-challenge/ reagieren .

Wenn Sie die HTTPS-Umleitung aktiviert haben, fügen Sie eine Umgehungsregel hinzu, damit der Challenge-Pfad während der Validierung auf einfachem HTTP bleibt.

Hier erfahren Sie, wie Sie dies für virtuelle Server tun:

config firewall vip
    edit "acme-http"
        set extintf "wan1"
        set extip <your-public-ip>
        set mappedip "192.168.1.99"
        set extport 80
        set mappedport 80
        set protocol tcp
    next
end

Ersetzen Sie <your-public-ip> und 192.168.1.99 durch Ihre tatsächlichen externen und internen IP-Adressen. Diese Werte sind Platzhalter und dienen nur als Beispiel.


Schritt 4: Auslösen der ersten Anfrage

Da FortiGate nun weiß, wie Sie Ihre Zertifizierungsstelle erreichen und wo die Validierungsdateien abgelegt werden müssen, können Sie mit der eigentlichen Zertifikatsregistrierung beginnen:

execute vpn certificate local generate "acme-vpn-cert"

Dieser Befehl weist FortiGate an, die Zertifizierungsstelle zu kontaktieren, eine Domänenüberprüfung durchzuführen und das signierte Zertifikat automatisch abzurufen.


Schritt 5: Prüfen Sie den Zertifikatsstatus

Um den Status Ihres Zertifikats zu überprüfen, führen Sie den folgenden Befehl aus:

get vpn certificate local

Das sollten Sie sehen:

Status: valid
Issuer: Your CA Name

Wenn der Status weiterhin ausstehend oder ungültig ist, überprüfen Sie erneut die Erreichbarkeit von DNS und Port 80.


Schritt 6: Das Zertifikat anwenden

Verwenden Sie die grafische Benutzeroberfläche (GUI) oder die Befehlszeilenschnittstelle (CLI), um sie SSL-VPN, HTTPS-Verwaltung oder Proxy-Diensten zuzuweisen:

config vpn ssl settings
    set servercert "acme-vpn-cert"
end

Hier sehen Sie, wie Sie dies über die grafische Benutzeroberfläche tun können:

Gehen Sie zu VPN > SSL-VPN-Einstellungen > Server-Zertifikat > Wählen Sie acme-vpn-cert.


Schritt7: Fehlerbehebung und Verlängerungen

Wenn das Zertifikat nicht sofort ausgestellt wird, sind die häufigsten Gründe dafür:

  • Der ACME-Server konnte Ihre Validierungs-URL nicht erreichen (offener Port 80).
  • Ihr KID- oder HMAC-Schlüssel stimmt nicht mit dem überein, was die CA erwartet.
  • Sie sind auf ein temporäres Wiederholungs- oder Ratenlimit gestoßen; versuchen Sie es einfach nach ein paar Minuten erneut.

Sobald das Zertifikat gültig ist, kümmert sich FortiGate automatisch um die Erneuerung, basierend auf Ihrer Einstellung auto-regenerate-days. Sie können die Erneuerung jederzeit mit testen:

execute vpn certificate local renew "acme-vpn-cert"

Fallback: Externe Ausstellung (ACME.sh) und Import in FortiGate

Wenn der ACME-Endpunkt Ihrer Zertifizierungsstelle nicht direkt mit FortiGate zusammenarbeitet, können Sie das Zertifikat extern mit ACME.sh ausstellen und importieren. Und so geht’s:

Schritt 1: ACME.sh installieren

Führen Sie diese Befehle auf einem beliebigen Linux-, macOS- oder BSD-System aus, das über einen Internetzugang verfügt. Sie führen sie nicht auf dem FortiGate selbst aus (FortiGate unterstützt keine benutzerdefinierten Shell-Skripte).

curl https://get.acme.sh | sh
source ~/.bashrc

Dies installiert den acme.sh Client in Ihrem Home-Verzeichnis und lädt ihn in Ihre Shell. Ersetzen Sie den Platzhalter durch Ihre tatsächliche CA und die Details.

Schritt 2: Registrieren Sie Ihr ACME-Konto bei EAB

acme.sh --register-account \
  --server https://acme.yourca.com/v2/acme \
  --eab-kid "YOUR_EAB_KID" \
  --eab-hmac-key "YOUR_EAB_HMAC_KEY" \
  -m [email protected]

Schritt 3: Ausstellen des Zertifikats

acme.sh --issue \
  -d vpn.example.com \
  --webroot /var/www/html \
  --server https://acme.yourca.com/v2/acme \
  --eab-kid "YOUR_EAB_KID" \
  --eab-hmac-key "YOUR_EAB_HMAC_KEY"

Schritt 4: Suchen Sie die Zertifikatsdateien

Nach einer erfolgreichen Ausstellung werden Ihre Zertifikatsdateien in Ihrem Heimatverzeichnis unter ~/.acme.sh/vpn.example.com/

In diesem Ordner finden Sie Folgendes:

  • fullchain.cer – die vollständige Zertifikatskette
  • vpn.example.com.key – Ihr privater Schlüssel
  • ca.cer – das CA-Zwischenzertifikat

Sie können sie mit einem Texteditor öffnen oder die Details über OpenSSL überprüfen:

openssl x509 -in fullchain.cer -noout -dates -issuer -subject

Schritt 5: Importieren in FortiGate

Sie können das Zertifikat über die GUI importieren:

Gehen Sie zu: System > Zertifikate > Import > Lokales Zertifikat und
laden Sie das Zertifikat und den privaten Schlüssel hoch.

Oder Sie können die CLI verwenden:

config vpn certificate local
    edit "acme-vpn-cert"
        set private-key "-----BEGIN PRIVATE KEY-----..."
        set certificate "-----BEGIN CERTIFICATE-----..."
    next
end

Schritt 6: Zuweisen & erneuern

Sobald das Zertifikat erneuert wurde, stellen Sie sicher, dass Sie es Ihrem SSL-VPN oder der FortiGate-Webschnittstelle neu zuweisen (falls es nicht automatisch angewendet wird). Wenn Sie einen externen ACME-Client auf einem anderen Server verwenden, richten Sie eine geplante Aufgabe (z.B. einen Cron-Job) ein, um die neuen Zertifikatsdateien automatisch über SCP oder einen API-Aufruf auf FortiGate zu kopieren.

Beispiel:

scp ~/.acme.sh/vpn.example.com/fullchain.cer admin@fortigate:/root/
scp ~/.acme.sh/vpn.example.com/vpn.example.com.key admin@fortigate:/root/

Laden Sie dann das Zertifikat neu:

execute vpn certificate local import "acme-vpn-cert"

Allgemeine Fragen

Wenn Sie ACME zum ersten Mal mit einer kommerziellen CA einrichten, tauchen oft ein paar Fragen auf. Hier finden Sie kurze Antworten auf die am häufigsten gestellten Fragen:

Kann ich diese Einrichtung mit jeder kommerziellen CA verwenden?

Ja, sofern Ihr Anbieter ACME + External Account Binding (EAB) unterstützt. Große CAs wie Sectigo und DigiCert bieten bereits ACME-Verzeichnis-URLs und EAB-Zugangsdaten an.

Muss ich für die Validierung sowohl HTTP- als auch HTTPS-Ports öffnen?

Nur Port 80 (HTTP) ist für die HTTP-01-Validierung von ACME erforderlich. Halten Sie HTTPS (443) für den normalen Datenverkehr offen, aber leiten Sie keine Validierungsanfragen von HTTP auf HTTPS um.

Was passiert, wenn mein Zertifikat nicht automatisch verlängert wird?

Sie können die manuelle Erneuerung jederzeit mit auslösen:

execute vpn certificate local renew "acme-vpn-cert"

Wenn es immer noch nicht klappt, überprüfen Sie Ihre EAB-Zugangsdaten, den Domänen-DNS und ob die Firewall den ausgehenden Zugriff auf den ACME-Endpunkt Ihrer CA noch zulässt.

Kann ich dieselben EAB-Anmeldedaten auf mehreren FortiGates verwenden?

Das hängt von Ihrer CA ab. Einige erlauben die Wiederverwendung eines Kontos für mehrere Geräte, andere geben eindeutige Anmeldedaten pro Auftrag oder Domäne aus. Befolgen Sie immer die Richtlinien Ihrer CA, um Tarifbeschränkungen oder Kontokonflikte zu vermeiden.


Letzte Worte

Sie wissen nun, wie Sie ein ACME SSL-Zertifikat aufFortiGate installieren können, entweder über die native EAB-Integration oder über die externe Ausstellung mittels ACME.sh.

Beide Methoden erfüllen die Sicherheitsstandards von Unternehmen und unterstützen vollautomatische Erneuerungen mit kommerziellen Zertifizierungsstellen.

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

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.