Wer auf einem Cisco SG300 oder SG350 ein eigenes HTTPS-Zertifikat importieren möchte, erhält häufig kryptische Fehlermeldungen wie „Key header is missing“ oder „Failed to load public key“. Besonders beim Einsatz von Zertifikaten aus Microsoft AD CS oder einer internen PKI scheitert der Import oft trotz technisch korrekter Zertifikate. Ursache sind meist nicht die Zertifikate selbst, sondern spezielle Formatanforderungen der Cisco Small Business Switches.
Typische Fehlermeldungen sind:
Key header is missing
Wrong public key header format
Failed to load public key
Request is not authenticatedIn den meisten Fällen liegt die Ursache nicht am Zertifikat selbst, sondern an der Art des Exports, der Schlüsselkonvertierung oder an einer nicht unterstützten Schlüssellänge.
Dieser Beitrag zeigt eine funktionierende Vorgehensweise für den Import eines eigenen HTTPS-Zertifikats auf Cisco SG300- und SG350-Switches.
Cisco Small Business Switches stellen beim Zertifikatsimport höhere Anforderungen als viele andere Netzwerkgeräte.
Detaillierte Informationen zu den Cisco Small Business Switches sowie Firmware-Downloads sind auf der offiziellen Cisco-Webseite verfügbar: Cisco.com
Folgende Voraussetzungen sollten erfüllt sein:
Besonders RSA-4096-Zertifikate führen bei vielen Geräten dieser Serie zu Problemen.
Benötigt werden:
Eine Windows-kompatible OpenSSL-Installation wird von Shining Light Productions bereitgestellt.
Die Installation der Windows-kompatiblen OpenSSL Version ist hier im Detail beschrieben.
Offizielle OpenSSL-Installationen werden durch OpenSSL-Library.org bereitgestellt.
Im Beispiel wird folgende Datei verwendet:
switch.pfxopenssl pkcs12 -in switch.pfx -clcerts -nokeys -out switch.crt -passin pass:Kennwort123openssl pkcs12 -in switch.pfx -nocerts -nodes -out private.key -passin pass:Kennwort123Cisco SG300 und SG350 erwarten den privaten Schlüssel im klassischen RSA-Format.
openssl rsa -in private.key -traditional -out private-rsa.keyZusätzlich wird ein separater öffentlicher Schlüssel benötigt.
openssl rsa -in private-rsa.key -RSAPublicKey_out -out public.keyBeim Export aus einer PFX-Datei werden häufig zusätzliche Informationen ausgegeben:
Bag Attributes
friendlyName
subject
issuer
Diese Informationen führen regelmäßig zu Importfehlern.
Deshalb sollte eine bereinigte Zertifikatsdatei erstellt werden:
openssl x509 -in switch.crt -out switch-clean.crtopenssl rsa -in private-rsa.key -traditional -out private-clean.key
Vor dem Import sollten die Header überprüft werden.
findstr "BEGIN" switch-clean.crt
Erwartete Ausgabe:
-----BEGIN CERTIFICATE-----
findstr "BEGIN" public.key
Erwartete Ausgabe:
-----BEGIN RSA PUBLIC KEY-----
findstr "BEGIN" private-clean.key
Erwartete Ausgabe:
-----BEGIN RSA PRIVATE KEY-----
Zur Kontrolle oder zum Kopieren in die Weboberfläche können die Dateiinhalte direkt angezeigt werden.
more switch-clean.crt
more public.key
more private-clean.key
In der Weboberfläche zu folgendem Menü navigieren:
(Advanced / Erweiterte Ansicht zuvor aktivieren)
Security
→ SSL Server
→ SSL Server Authentication
Anschließend eine Zertifikats-ID auswählen:
Certificate ID 1
oder
Certificate ID 2
Die Option aktivieren:
Import RSA Key-Pair
Enable
In das Feld Certificate den Inhalt von
switch-clean.crt
einfügen.
In das Feld Public Key den Inhalt von
public.key
einfügen.
Im Bereich Private Key die Option
Plaintext
auswählen.
Anschließend den Inhalt von
private-clean.key
einfügen.
Apply
anklicken.
Nach erfolgreichem Import erscheint in der Zertifikatsübersicht üblicherweise:
Certificate Source: User Defined
Damit das Zertifikat auch nach einem Neustart erhalten bleibt:
Administration
→ File Management
→ Copy/Save Configuration
Ursache:
Lösung:
openssl x509 -in switch.crt -out switch-clean.crt
Ursache:
Der öffentliche Schlüssel besitzt einen falschen Header.
Falsch:
-----BEGIN PUBLIC KEY-----
Richtig:
-----BEGIN RSA PUBLIC KEY-----
Ursache:
Der öffentliche Schlüssel passt nicht zum privaten Schlüssel.
Lösung:
openssl rsa -in private-rsa.key -RSAPublicKey_out -out public.key
Ursache:
Lösung:
Die verwendete Schlüssellänge prüfen:
openssl x509 -in switch-clean.crt -text -noout | findstr "Public-Key"
Empfohlen:
Public-Key: (2048 bit)
In Praxistests erwies sich RSA 2048 Bit als die kompatibelste Variante für die SG300- und SG350-Serie.
Der Import eines SSL-Zertifikats auf Cisco SG300- und SG350-Switches scheitert meist nicht am Zertifikat selbst, sondern an Formatierungsdetails der exportierten Dateien. Besonders wichtig sind bereinigte PEM-Dateien, ein separater RSA Public Key sowie die Verwendung eines RSA-2048-Zertifikats.
Mit den gezeigten OpenSSL-Befehlen lässt sich ein vorhandenes PFX-Zertifikat zuverlässig für den Einsatz auf Cisco Small Business Switches vorbereiten und erfolgreich importieren.
Cisco SG300- und SG350-Switches erwarten Zertifikate im PEM-Format. Für den HTTPS-Webserver werden neben dem eigentlichen Zertifikat auch ein separater RSA Public Key und ein RSA Private Key benötigt. PFX-Dateien können nicht direkt importiert werden und müssen zuvor mit OpenSSL in die erforderlichen Einzeldateien aufgeteilt werden.
Diese Fehlermeldung tritt meist auf, wenn die Zertifikats- oder Schlüsseldateien zusätzliche Informationen vor dem eigentlichen PEM-Header enthalten. Dazu gehören beispielsweise „Bag Attributes“, „Friendly Name“, „Subject“ oder „Issuer“. Die Datei muss direkt mit einem gültigen PEM-Header beginnen, beispielsweise:
—–BEGIN CERTIFICATE—–
oder
—–BEGIN RSA PRIVATE KEY—–
Technisch unterstützen moderne Zertifikate RSA-Schlüssel mit 4096 Bit. In der Praxis zeigen Cisco SG300- und SG350-Switches jedoch häufig Probleme beim Import solcher Zertifikate. Für maximale Kompatibilität empfiehlt sich die Verwendung eines Zertifikats mit RSA 2048 Bit und SHA256.
Im Gegensatz zu vielen anderen Netzwerkgeräten verlangen Cisco Small Business Switches den Import eines separaten öffentlichen RSA-Schlüssels. Dieser muss aus dem privaten Schlüssel erzeugt werden und den folgenden Header besitzen:
—–BEGIN RSA PUBLIC KEY—–
Ein öffentlicher Schlüssel mit dem Header
—–BEGIN PUBLIC KEY—–
wird häufig nicht akzeptiert.
Nein, sofern die Konfiguration nach dem Import nicht gespeichert wird. Nach erfolgreichem Zertifikatsimport sollte die laufende Konfiguration dauerhaft gesichert werden. Dies erfolgt über die Weboberfläche unter:
Administration
→ File Management
→ Copy/Save Configuration
oder alternativ per CLI:
copy running-config startup-config
Andernfalls kann das importierte Zertifikat nach einem Neustart verloren gehen.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!