Wie werden Root-Zertifikate unter Windows mit OpenSSL verwaltet und verwendet?
- Windows-Zertifikatsspeicher und Root-Zertifikate
- OpenSSL und der Umgang mit Zertifikaten unter Windows
- Root-Zertifikate aus Windows exportieren und in OpenSSL verwenden
- Konfiguration von OpenSSL für Root-Zertifikate unter Windows
- Zusammenfassung
OpenSSL ist ein weit verbreitetes Tool zur Verwaltung und Verwendung von Kryptografie, insbesondere für SSL/TLS-Zertifikate. Unter Windows gibt es jedoch einige Besonderheiten bei der Arbeit mit Root-Zertifikaten, da das Betriebssystem ein eigenes Zertifikatsspeichersystem verwendet. Im Folgenden wird erläutert, wie Root-Zertifikate in Windows gehandhabt werden, wie OpenSSL darauf zugreifen kann und welche Schritte notwendig sind, um Root-Zertifikate mit OpenSSL unter Windows zu verwenden.
Windows-Zertifikatsspeicher und Root-Zertifikate
Windows verfügt über einen integrierten Zertifikatsspeicher, der verschiedene Zertifikatsarten verwaltet, darunter persönliche Zertifikate, Zwischenzertifikate und Root-Zertifikate. Diese Zertifikate werden zentral in der Windows-Zertifikatsverwaltung gespeichert und sind für alle Anwendungen systemweit zugänglich, sofern diese auf den Windows-Zertifikatsspeicher zugreifen. Das bedeutet, dass Windows-Anwendungen in der Regel automatisch auf den Trusted Root Certification Authorities Store zugreifen können, um die Vertrauenswürdigkeit von Zertifikaten zu überprüfen.
OpenSSL und der Umgang mit Zertifikaten unter Windows
OpenSSL hingegen ist ursprünglich für Unix-basierte Systeme entwickelt worden und verwendet standardmäßig keine Windows-integrierten Zertifikatsspeicher. Stattdessen greift OpenSSL direkt auf Zertifikatdateien zu, die in einem lokalen Verzeichnis abgelegt sind. Unter Windows führt das häufig dazu, dass OpenSSL nicht automatisch die Root-Zertifikate aus dem Windows-Zertifikatsspeicher nutzen kann. Dies kann zu Problemen führen, wenn OpenSSL Verbindungen überprüft, da der Trust-Store nicht automatisch anerkannt wird.
Root-Zertifikate aus Windows exportieren und in OpenSSL verwenden
Um OpenSSL unter Windows mit den Root-Zertifikaten zu versorgen, müssen diese zunächst aus dem Windows-Zertifikatsspeicher exportiert werden. Dieser Export kann über die Zertifikatsverwaltung von Windows erfolgen, die über "certmgr.msc" aufgerufen wird. Dort lassen sich die Root-Zertifikate aus dem Trusted Root Certification Authorities Store exportieren. Die exportierten Dateien liegen meist im PEM-Format oder lassen sich entsprechend konvertieren.
Nachdem die Root-Zertifikate exportiert wurden, können sie in einem Verzeichnis gesammelt und OpenSSL in der Konfiguration darauf hingewiesen werden, diesen Ordner oder diese Datei als vertrauenswürdigen CA-Speicher einzusetzen. Dadurch ermöglicht man OpenSSL, die gleichen Root-Zertifikate zu nutzen, die auch im Windows-System vertrauenswürdig sind.
Konfiguration von OpenSSL für Root-Zertifikate unter Windows
Die OpenSSL-Konfigurationsdatei (openssl.cnf) kann angepasst werden, um auf den Pfad der Root-Zertifikate zu zeigen. Alternativ können OpenSSL-Befehle wie openssl s_client oder openssl verify mit Parametern ausgestattet werden, welche die vertrauenswürdigen Zertifikate explizit angeben. Ohne diese Anpassung verwendet OpenSSL nur die eingebauten oder explizit angegebenen Zertifikate und ignoriert den Windows-Zertifikatsspeicher.
Zusammenfassung
Die Verwaltung und Nutzung von Root-Zertifikaten mit OpenSSL unter Windows ist dadurch charakterisiert, dass OpenSSL nicht nativ auf den Windows-eigenen Zertifikatsspeicher zugreifen kann. Daher müssen Windows-Root-Zertifikate exportiert und OpenSSL separat zur Verfügung gestellt werden. Durch diesen Vorgang lässt sich gewährleisten, dass OpenSSL-Verbindungen auch unter Windows auf ein vertrauenswürdiges Zertifikatstore zugreifen und SSL/TLS-Verbindungen korrekt verifizieren kann.
