Best Practices 06-10-2015

Wo ist Ihr privater Schlüssel?

Jeremy Rowley

Zuletzt überarbeitet: November 2020

Obwohl Zertifikate mittlerweile schneller ablaufen, befassen sich IT-Profis zumeist nicht täglich mit der TLS/SSL-Konfiguration in ihrem Verantwortungsbereich. Tatsächlich arbeiten die meisten etwa einmal im Jahr mit den diesbezüglichen Schlüsseln – eben wenn sie Zertifikate ändern müssen. Manchmal erweist sich die Nachverfolgung und Verwaltung dieser Zertifikate und ihrer Schlüssel als schwierig und es wird viel Zeit darauf verwendet, sie überhaupt ausfindig zu machen. Dieser Blogartikel soll Ihnen helfen, private Schlüssel in Ihrem Besitz aufzuspüren. Wie Sie dazu vorgehen müssen, hängt vom Betriebssystem des Webservers ab. Im Folgenden wird auf die gängigsten Betriebssysteme eingegangen, doch zunächst die Grundlagen:

Was ist ein privater Schlüssel?

Jedes TLS-Zertifikat benötigt einen privaten Schlüssel. Dabei handelt es sich um eine separate Datei, die bei der Ver- und Entschlüsselung des Datenverkehrs zwischen Ihrem Server und damit verbundenen Clients zum Einsatz kommt. Sie, der Zertifikatinhaber, erstellen den privaten Schlüssel, wenn Sie sich mittels einer Signaturanforderung (Certificate Signing Request, CSR) ein Zertifikat ausstellen lassen. Die Zertifizierungsstelle (Certificate Authority, CA) (z. B. DigiCert) erstellt den privaten Schlüssel nicht und besitzt ihn auch nicht. Tatsächlich sollte niemand außerhalb Ihres Administratorenteams jemals Zugang dazu haben. Immer häufiger müssen Zertifizierungsstellen Zertifikate widerrufen, weil Administratoren die zugehörigen Schlüssel in Online-Repositorys wie GitHub veröffentlichen. Selbst wenn Sie meinen, Ihre Website übertrage keine sensiblen Informationen, so erfordert die Veröffentlichung privater Schlüssel dennoch, dass alle abhängigen Zertifikate widerrufen werden. Falls Sie Ihr Zertifikat noch nicht installiert haben, befindet sich Ihr privater Schlüssel wahrscheinlich auf dem Computer oder Server, auf dem Sie das Schlüsselpaar und die Signaturanforderung erstellt haben. Beim Erzeugen des Schlüsselpaars haben Sie zwei Dateien abgespeichert: eine mit dem öffentlichen Schlüssel und eine mit dem privaten. Im Fall von OpenSSL finden Sie über den Befehl „openssl version –a“ den Ordner mit den Schlüsseldateien (standardmäßig „/usr/local/ssl“). Bei Windows (IIS) erledigt Ihr Betriebssystem die Signaturanforderung für Sie. Am besten schließen Sie die Anforderung erst ab und exportieren dann den Schlüssel (siehe nachstehende Anleitung).

So finden Sie den privaten Schlüssel

Falls Ihr Zertifikat bereits installiert ist, führen Sie diese Schritte in gängigen Betriebssystemen aus, um die Datei mit dem privaten Schlüssel zu finden.

Apache

Den Speicherort der Privatschlüsseldatei können Sie der Hauptkonfigurationsdatei für Apache entnehmen: httpd.conf oder apache2.conf. Auf die Anweisung SSLCertificateKeyFile wird der Serverpfad zum Speicherort des Schlüssels ausgegeben. OpenSSL, die unter Apache am häufigsten genutzte SSL-Bibliothek, speichert private Schlüssel standardmäßig unter /usr/local/ssl. Führen Sie den Befehl „openssl version –a“ aus, um sich OPENSSLDIR anzeigen zu lassen und den Ordner zu finden, in dem Ihr Server Schlüssel speichert.

NGINX

Den Speicherort des privaten Schlüssels finden Sie in der Datei des virtuellen Hosts Ihrer Website. Navigieren Sie zum Serverblock für diese Website (standardmäßig im Verzeichnis /var/www/). Öffnen Sie die Hauptkonfigurationsdatei für die Website und suchen Sie das Verzeichnis ssl_certificate_key. Dort finden Sie den Dateipfad zum privaten Schlüssel (für manche Benutzer gibt es eine separate Konfigurationsdatei für SSL, z. B. ssl.conf).

Windows (IIS)

Auf Windows-Servern werden die Zertifikatsdateien in einem versteckten Ordner gespeichert, den privaten Schlüssel können Sie aber durch den Export einer .pfx-Datei erlangen. Diese Datei enthält die Zertifikate und den privaten Schlüssel. Öffnen Sie Microsoft Management Console (MMC). Klappen Sie im Konsolenstamm den Eintrag Zertifikate (Lokaler Computer) aus. Das Serverzertifikat ist im Unterordner „Persönlich“/„Eigene Zertifikate“ oder „Webserver“ zu finden. Das gewünschte Zertifikat finden Sie unter seinem allgemeinen Namen. Klicken Sie mit der rechten Maustaste darauf, wählen Sie Exportieren und lassen Sie sich vom Assistenten leiten. Im Ergebnis haben Sie eine .pfx-Datei. Eine genauere Schritt-für-Schritt-Anleitung finden Sie hier. Je nachdem, was Sie mit dem privaten Schlüssel vorhaben, kann eine Abspaltung des Schlüssels in einer separaten Datei erforderlich sein. Dazu muss die .pfx-Datei konvertiert werden. Wenn Sie den Schlüssel nur sichern oder auf einem anderen Windows-Server installieren möchten, kann das Format bleiben, wie es ist. Zur Verwendung mit anderen Plattformen, z. B. Apache, konvertieren Sie die .pfx-Datei mittels OpenSSL, um zwei Dateien zu erzeugen: eine .crt/.cer-Datei und eine .key-Datei. Wenn Sie den privaten Schlüssel mithilfe dieser Methode nicht finden, können Sie die DigiCert SSL Utility herunterladen. Dieses Programm ermöglicht den Import des Zertifikats und findet Ihren privaten Schlüssel automatisch, sofern er sich auf dem Server befindet. Es handelt sich um lokal wirkende Software, die keine Schlüsselinformationen an DigiCert zurücksendet. DigiCert erhält nie Daten zu privaten Schlüsseln für TLS-Zertifikate, außerdem untersagt die Root-Store-Richtlinie eine TLS-Schlüsselhinterlegung (wie sie gelegentlich bei der Dokumentsignierung und bei S/MIME-Zertifikaten vorkommt) durch die Zertifizierungsstelle strengstens.

Wo können Sie noch suchen?

Wenn Sie der Anleitung für Ihr Betriebssystem gefolgt sind, ohne den Schlüssel zu finden, dann suchen Sie vielleicht an der falschen Stelle. Wenn Ihr Server funktionierende HTTPS-Verbindungen herstellt, befindet sich der Schlüssel irgendwo auf dem Server (oder ist für ihn zugänglich), denn sonst kämen die Verbindungen nicht zustande. Dieser Text kann nur die üblichen Szenarien abdecken, doch möglicherweise nutzt Ihr Unternehmen eine eigene, davon abweichende Konfiguration. Versuchen Sie einmal, den Server nach einer .key-Datei zu durchsuchen oder die Installation eines neuen Zertifikats zu simulieren, denn dabei dürften Sie irgendwann an den Punkt gelangen, an dem ein privater Schlüssel anzugeben ist. Auf einigen Plattformen speichert OpenSSL die .key-Datei in demselben Verzeichnis, aus dem heraus der Befehl „-req“ ausgeführt wurde. Wenn Sie das Zertifikat erst noch installieren müssen und den Schlüssel nicht finden, ist er möglicherweise weg. Haben Sie die Signaturanforderung gestellt, können aber den Schlüssel nicht lokalisieren, ist es wohl am einfachsten, das Zertifikat erneut auszustellen. Beginnen Sie mit einer neuen Signaturanforderung, speichern Sie den privaten Schlüssel an einer wiederauffindbaren Stelle und koppeln sie das Zertifikat mit dem neuen Schlüssel. DigiCert berechnet Ihnen Neuausstellungen nicht. Zu wissen, wo Schlüssel gespeichert sind und wie Sie sie schützen können, ist unerlässlich, dennoch empfehlen wir, zu jedem neu bestellten Zertifikat ein neues Schlüsselpaar zu erstellen. Schlüssel wiederzuverwenden, wird kritisch gesehen und kann zu einer Reihe von Problemen führen, wenn Schlüssel ausgespäht werden. Angesichts einer dynamischen Bedrohungslage schwächt diese Praktik die Schutzmechanismen Ihres Unternehmens. Schlüssel und Signaturanforderungen zu erzeugen, ist kinderleicht, und DigiCert unterstützt den häufigen Schlüsseltausch, um Unternehmen zu mehr Sicherheit zu verhelfen.

 

 

UP NEXT
Sicherheit

Vereinfachtes Code Signing an Werk- und Feiertagen

5 Min

Im Blickpunkt

Digitales Vertrauen für die analoge Welt wird Wirklichkeit

Mit Zero Trust zum digitalen Vertrauen

Smart Homes sollen das Leben einfacher machen, aber da jedes Smart Home-Gerät eine eigene App benötigt, um es zu verwalten, war es für die Verbraucher nicht einfach, ihre verschiedenen Geräte zu verwalten. Lesen Sie hier mehr über Matter-Trusted Devices.