Seit FortiOS 7.0 unterstützten Fortigate Firewalls die Ausstellung von SSL-Zertifikaten über die Zertifizierungsstelle LetsEncrypt.
Das nun folgende Beispiel wurde auf einer FortiGate mit FortiOS 7.0.5 erstellt.
Für die Zertifikatsaustellung verwendet LetsEncrypt ein Protokoll mit dem Namen „ACME“, dieses erfordert eine HTTP Kommunikation auf dem TCP Port 80 der FortiGate Firewall.
Die notwendige Konfiguration wird auf der FortiGate im Menüpunkt „System –> Settings –> Administration Settings“ durchgeführt:
Unter dem Punkt „ACME interface“ muss nun eine Netzwerkschnittstelle mit Internetzugang eingetragen werden.
Wichtig ist es hierbei, dass diese Schnittstelle von den LetsEncrypt Servern erreicht werden kann und die Domains der auszustellenden Zertifikate im DNS auf die IP-Adresse dieser Schnittstelle zeigen.
Auf der CLI sieht die oben erzeugte Konfiguration übrigens so aus:
config system acme
set interface "wan1"
config accounts
edit "ACME-.letsencrypt.org-0000"
set status "valid"
set ca_url "https://acme-v02.api.letsencrypt.org/directory"
set email "dominik@kupschke.net"
next
end
end
Sind alle Vorkehrungen getroffen, können wir endlich mit der Erstellung des ersten Zertifikats beginnen.
In der WebUI befindet sich der notwendige Menüpunkt unter „System –> Certificates –> Create/Import“:
In dem sich öffnenden Dropdown Menü wird der Punkt „Certificate“ gewählt:
Die folgende Maske sollte selbsterklärend sein, hier wird der Button mit der Aufschrift „Use Let’s Encrypt“ gewählt:
Im Schritt 2 der Zertifikatserstellung wird die Domain sowie der interne Name des Zertifikats auf der FortiGate festgelegt. Zusätzlich wird eine E-Mail abgefragt, diese dient für die Zustellung von Warnungen, falls es bspw. zu einem Ablauf des Zertifikats kommt. Sind alle Daten eingetragen, kann das Zertifikat über den Button „Create“ angefragt werden:
Die FortiGate fragt jetzt das Zertifikat an, während des Vorgangs zeigt die FortiGate folgende Meldung an:
Das Zertifikat wurde korrekt ausgestellt und kann nun verwendet werden:
Auch auf der CLI ist die Ausstellung von Zertifikaten mittels LetsEncrypt möglich:
config certificate local
edit "fgt.kupschke.net"
set enroll-protocol acme2
set acme-domain "fgt.kupschke.net"
set acme-email "dominik@kupschke.net"
next
end
Abschließend erhalten wir auf der CLI noch die Aufforderung, den Terms of Services von LetsEncrypt zuzustimmen:
By enabling this feature you declare that you agree to the Terms of Service at https://acme-v02.api.letsencrypt.org/directory
Do you want to continue? (y/n)y
Die nun erzeugten Zertifikate lassen sich bspw. im SSL-VPN oder in einer Inbound SSL Inspection nutzen.
[…] In dem folgenden Abschnitt wird die IKE Version auf 2 umgestellt und die Peer-IDs werden an dieser Stelle nicht weiter eingeschränkt. Die Windows IKEv2 Implementierung erfordert ein valides Zertifikat um den Key Exchange mit der FortiGate zu validieren.An dieser Stelle können auch Zertifikate von LetsEncrypt verwendet werden, wie dies funktioniert erkläre ich hier. […]