Warum sind meine OpenSSL-Zertifikate unter Windows nicht kompatibel mit IIS?
- Zertifikatformate und deren Kompatibilität
- Private Schlüssel und deren Schutz
- Zertifikatkette und Vertrauenswürdigkeit
- Unterschiedliche Schlüsselformate und Kryptographie
- Fazit und Lösungsmöglichkeiten
Wenn Sie OpenSSL-Zertifikate auf einem Windows-System erstellen und feststellen, dass diese nicht direkt mit dem Internet Information Services (IIS) kompatibel sind, liegt das häufig an Unterschieden im Zertifikatformat, der Schlüsselverwaltung und der Art und Weise, wie IIS Zertifikate importiert und verwendet.
Zertifikatformate und deren Kompatibilität
OpenSSL erzeugt standardmäßig Zertifikate und Schlüssel in Formaten wie PEM (Privacy Enhanced Mail), welche einfach Base64-kodierte Textdateien mit bestimmten Headern und Footern sind. Diese PEM-Dateien enthalten separate Dateien für den privaten Schlüssel (.key), das Zertifikat (.crt) und manchmal auch die CA-Bündeldateien (Certificate Authority). Windows und IIS hingegen bevorzugen das PFX-Format (PKCS#12), das private Schlüssel und Zertifikate gemeinsam in einer einzigen, passwortgeschützten Datei speichert.
Wenn Sie versuchen, direkt eine PEM-Datei in IIS zu importieren, wird dies in der Regel nicht funktionieren, da IIS kein PEM-Verwaltungsformat unterstützt. Daher ist es notwendig, PEM-Dateien mit OpenSSL in das PFX-Format zu konvertieren.
Private Schlüssel und deren Schutz
Ein weiterer wichtiger Punkt ist die Handhabung des privaten Schlüssels. In der Windows-Umgebung werden private Schlüssel in der Zertifikatspeicherinfrastruktur von Windows abgelegt und geschützt. Wenn Sie OpenSSL-Zertifikate verwenden, muss der private Schlüssel richtig exportiert und später beim Import in IIS zugeordnet werden.
OpenSSL erzeugte Schlüssel sind oft unverschlüsselt oder mit einer Passphrase geschützt. Beim Import in IIS muss sichergestellt werden, dass der private Schlüssel in der PFX-Datei enthalten ist und dass diese Datei mit einem passenden Passwort versehen ist, welches IIS beim Import akzeptiert. Fehlende oder unvollständige Keys führen dazu, dass das Zertifikat nicht korrekt in IIS registriert werden kann.
Zertifikatkette und Vertrauenswürdigkeit
Ein weiterer häufiger Grund für Probleme bei der Kompatibilität liegt in der fehlerhaften Integration der Zwischenzertifikate (Chain Certificates). OpenSSL erzeugt oft das Serverzertifikat getrennt von den Zwischenzertifikaten der CA. Für IIS muss die Zertifikatskette vollständig und korrekt in der PFX-Datei eingebunden sein, damit das Zertifikat von IIS und den Browsern als vertrauenswürdig anerkannt wird.
Wird die gesamte Kette nicht korrekt eingebunden, zeigt IIS zwar das Zertifikat, es kann jedoch zu Zertifikatsfehlern oder Warnungen hinsichtlich der Vertrauenswürdigkeit kommen.
Unterschiedliche Schlüsselformate und Kryptographie
Darüber hinaus können Unterschiede in den unterstützten Verschlüsselungsalgorithmen und Schlüsselformaten zu Kompatibilitätsproblemen führen. OpenSSL unterstützt eine Vielzahl von Algorithmen, darunter RSA, ECDSA oder neuere Varianten. IIS und Windows haben allerdings Einschränkungen bei der Unterstützung bestimmter Formate, besonders bei elliptischen Kurven oder speziellen Schlüssellängen.
Das bedeutet, dass ein mit OpenSSL erzeugter Zertifikatsschlüssel zwar technisch korrekt, aber nicht von Windows CryptoAPI korrekt verarbeitet werden kann, was wiederum den Import in IIS verhindert.
Fazit und Lösungsmöglichkeiten
Zusammenfassend entstehen Kompatibilitätsprobleme meist durch das falsche oder nicht unterstützte Zertifikatformat, die Handhabung und den Schutz des privaten Schlüssels, das Fehlen kompletter Zertifikatketten und Unterschiede bei den unterstützten kryptographischen Formaten. Die gängige Lösung besteht darin, die von OpenSSL erzeugten PEM-Zertifikate mit dem privaten Schlüssel und den Zwischenzertifikaten in eine PFX-Datei zu konvertieren. Dies erfolgt typischerweise mit einem OpenSSL-Befehl wie openssl pkcs12 -export, mit dem alle notwendigen Komponenten in einer passwortgeschützten Datei zusammengeführt werden.
Nach der Konvertierung können die PFX-Dateien problemlos in IIS importiert werden, wodurch die Zertifikate korrekt erkannt, gespeichert und genutzt werden. Achten Sie zudem immer darauf, dass die verwendeten Schlüsselalgorithmen kompatibel mit Windows sind, um zusätzliche Probleme zu vermeiden.
