Wie kann man OpenSSL unter Windows mit dem vertrauenswürdigen CA-Store verwenden?
- Unterschiede zwischen dem OpenSSL- und dem Windows-CA-Store
- Warum ist die Nutzung des Windows-Zertifikatsspeichers mit OpenSSL sinnvoll?
- Wie kann man OpenSSL unter Windows dennoch mit dem Windows-CA-Store nutzen?
- Praktische Schritte zum Exportieren des Windows-CA-Stores für OpenSSL
- Fazit
OpenSSL ist ein weit verbreitetes Tool zur Verschlüsselung und Verwaltung von Zertifikaten. Unter Windows stellt sich häufig die Frage, wie man OpenSSL so konfigurieren kann, dass es vertrauenswürdige Zertifizierungsstellen (CA) aus dem Windows-eigenen Zertifikatsspeicher nutzt. Dies ist besonders wichtig, um die Integration zwischen OpenSSL-basierten Anwendungen und dem Betriebssystem zu erleichtern und somit vertrauenwürdige HTTPS-Verbindungen oder signierte Dokumente sicher zu überprüfen.
Unterschiede zwischen dem OpenSSL- und dem Windows-CA-Store
OpenSSL verwendet traditionell separate Zertifikatsspeicher, die als Dateien im PEM-Format vorliegen. Diese Dateien enthalten die Root-Zertifikate der CA, denen OpenSSL vertraut. Windows hingegen verwaltet seine vertrauenswürdigen Zertifikate über den sogenannten Windows-Zertifikatsspeicher, der systemweit über die Verwaltungskonsole zugänglich ist. Die Zertifikate sind dabei nicht als einzelne Dateien, sondern in einer speziellen Datenbank gespeichert. Diese Unterschiede machen die direkte Verwendung des Windows-CA-Stores durch OpenSSL nicht trivial.
Warum ist die Nutzung des Windows-Zertifikatsspeichers mit OpenSSL sinnvoll?
Viele Anwendungen auf Windows verlassen sich auf den integrierten Zertifikatsspeicher, um Aktualisierungen von Zertifikatsperrlisten und Root-CA-Zertifikaten zentral und automatisch zu erhalten. Wenn OpenSSL Anwendungen ebenfalls diesen Store ohne eine manuelle Pflege separater Zertifikatsdateien verwenden könnten, würde dies Administrationsaufwand reduzieren und die Sicherheit erhöhen. Insbesondere in Umgebungen mit regelmäßigen Updates und Änderungen in der Zertifikatslandschaft ist dies vorteilhaft.
Wie kann man OpenSSL unter Windows dennoch mit dem Windows-CA-Store nutzen?
Da OpenSSL nativ keine direkte Schnittstelle zum Windows-Zertifikatsspeicher besitzt, gibt es zwei gebräuchliche Vorgehensweisen, um eine Integration zu erreichen. Zunächst kann man die vom Windows-Zertifikatsspeicher verwendeten Zertifikate exportieren und in eine Datei im PEM-Format überführen, die OpenSSL dann verwendet. Hierzu können Tools wie certutil oder Powershell-Skripte benutzt werden, um alle vertrauenswürdigen Root-Zertifikate aus dem Windows-Store zu extrahieren. Nach dem Export erzeugt man eine sogenannte CA-Bundle-Datei, welche OpenSSL als vertrauenswürdige Zertifikatsgrundlage erkennt.
Alternativ bieten manche OpenSSL-Builds oder Wrapper-Programme spezielle Erweiterungen oder APIs an, die den Zugriff auf den Windows-Zertifikatsspeicher erlauben. Diese sind jedoch meist nicht standardmäßig in der OpenSSL-Distribution enthalten und müssen separat integriert werden.
Praktische Schritte zum Exportieren des Windows-CA-Stores für OpenSSL
Um den Zertifikatsspeicher zu exportieren, öffnet man die Eingabeaufforderung oder Powershell mit Administratorrechten und nutzt den Befehl certutil -verroot -split -user oder ähnliche Varianten, je nachdem ob der Benutzer- oder Systemstore verwendet wird. Die exportierten Zertifikate werden dann zusammengefügt und können als Eingabe für OpenSSL verwendet werden, indem die Umgebungsvariable SSL_CERT_FILE auf die entsprechende PEM-Datei gesetzt wird oder in der OpenSSL-Konfigurationsdatei der Pfad hinterlegt wird.
Fazit
Die direkte Nutzung des Windows-Zertifikatsspeichers innerhalb von OpenSSL ist ohne zusätzliche Hilfsmittel nicht möglich, da OpenSSL seine eigenen Dateien im PEM-Format erwartet. Dennoch lässt sich durch Exportieren der Zertifikate und Erzeugen eines CA-Bundles eine effektive Integration erreichen. Diese Vorgehensweise unterstützt Administratoren und Entwickler dabei, OpenSSL unter Windows sicher und mit den aktuellen vertrauenswürdigen Zertifikaten zu betreiben. Für einfache Anwendungen ist der Export des Stores gewöhnlich die pragmatischste Lösung.
