Zertifikatsignierungsanforderungen (CSRs) sind für die Websicherheit und -verschlüsselung von zentraler Bedeutung. Sie sind unerlässlich für den Erhalt eines SSL- (Secure Socket Layer) oder TLS -Zertifikats (Transport Layer Security) von einer Zertifizierungsstelle (CA) . Dieser Blogbeitrag erklärt Ihnen, wie Sie eine CSR verstehen und erstellen und hebt deren Bedeutung für die Websicherheit hervor.
Was ist eine CSR?
Beim Anfordern eines SSL-Zertifikats von einer Zertifizierungsstelle wird ein verschlüsselter Textblock, die sogenannte Zertifikatsignieranforderung (CSR), gesendet . Diese wird üblicherweise auf dem Server generiert, auf dem das Zertifikat installiert werden soll. Sie enthält Informationen zum Zertifikat, wie z. B. den Namen der Organisation, den allgemeinen Namen (Domänennamen), den Ort und das Land. Außerdem enthält sie den öffentlichen Schlüssel, mit dem das Zertifikat signiert wird.
Warum sind CSRs wichtig?
CSRs fungieren als Schnittstelle zwischen dem Antragsteller des SSL-Zertifikats und der ausstellenden Zertifizierungsstelle (CA). Mit der Erstellung eines CSRs werden zwei wesentliche Elemente generiert: der öffentliche Schlüssel , der im CSR enthalten ist, und der private Schlüssel, der gleichzeitig mit dem CSR generiert wird und auf Ihrem Server verbleibt. Der private Schlüssel muss geheim gehalten werden, da er dem Server die Authentifizierung und Entschlüsselung von Informationen ermöglicht, sobald das SSL-Zertifikat aktiv ist.
Übersicht über Luna Cloud HSM von Thales: Funktionen und Vorteile
Luna Cloud HSM ist ein Hardware-Sicherheitsmodul (HSM) von Thales. Der Zusatz „Cloud HSM“ bedeutet, dass es sich um ein Cloud-basiertes Angebot handelt. Sie können es als Dienst über das Internet nutzen, anstatt ein HSM physisch in Ihrem Rechenzentrum zu installieren und zu verwalten. Luna Cloud HSM ist Bestandteil des CipherTrust Cloud Key Manager-Dienstes von Thales.
Ein HSM ist ein dediziertes Hardwaregerät mit speziellen kryptografischen Prozessoren zur Verwaltung digitaler Schlüssel und Durchführung kryptografischer Operationen. Es bietet eine sichere Umgebung, in der Sie Verschlüsselungsschlüssel generieren, verwalten und verwenden können. Zur Erhöhung der Sicherheit sind diese von anderen Systemkomponenten isoliert. HSMs werden typischerweise zum Schutz der sensibelsten digitalen Assets eines Unternehmens eingesetzt.
Das Luna Cloud HSM bringt das Beste der Cloud in die HSM-Welt – Skalierbarkeit, Zugänglichkeit und geringere Vorlaufkosten. Sie erhalten die Sicherheit eines herkömmlichen HSM mit den zusätzlichen Vorteilen eines Cloud-Dienstes.
Die Hauptfunktionen von Luna Cloud HSM sind:
-
Robuste Sicherheit
Luna Cloud HSM nutzt die leistungsstarken Verschlüsselungs- und Schlüsselverwaltungsfunktionen von Thales und bietet damit eines der höchsten Datenschutzniveaus in der Cloud. Die HSMs sind manipulationssicher und gewährleisten eine sichere Umgebung für kryptografische Operationen.
-
Skalierbarkeit
Wenn Ihre kryptografischen Anforderungen wachsen, lässt sich Luna Cloud HSM problemlos mitskalieren. Sie müssen sich nicht um den Kauf und die Installation zusätzlicher HSM-Hardware kümmern.
-
Hochverfügbarkeit
Luna Cloud HSM bietet hohe Verfügbarkeit und automatische Failover-Funktionen zur Gewährleistung der Geschäftskontinuität. Sie können HSMs in mehreren Regionen einsetzen, um lokale Ausfälle zu minimieren.
-
Compliance
Luna Cloud HSM unterstützt Sie bei der Einhaltung regulatorischer Standards für kryptografische Operationen und Schlüsselverwaltung, darunter PCI-DSS , DSGVO und HIPAA . Der Dienst bietet umfassende Funktionen für Auditierung und Protokollierung.
-
Flexibel Kommunikation
Luna Cloud HSM unterstützt eine breite Palette kryptografischer APIs, Bibliotheken und Integrationen, wie z. B. PKCS#11, Java (JCE), Microsoft CryptoAPI und Microsoft CNG, und ist daher mit einer breiten Palette von Anwendungen und Diensten kompatibel.
Die Liste der unterstützten Client-Plattformen für Luna Cloud HSM finden Sie hier.
Wie erstelle ich eine CSR?
Die Generierung einer CSR kann je nach verwendeter Software unterschiedlich sein, die Kernschritte bleiben jedoch gleich. Hier ist ein allgemeiner Überblick über den Prozess:
-
Vorbereitung
Bevor Sie Ihre CSR erstellen, müssen Sie über alle relevanten Details verfügen. Dazu gehören Ihr Domänenname, der Name Ihrer Organisation, Ihr Ort (Stadt), Ihr Bundesland oder Ihre Provinz und der Ländercode.
-
Generieren eines Schlüsselpaars
Der erste Schritt beim Generieren einer CSR ist die Erstellung eines öffentlich-privaten Schlüsselpaars. Denken Sie daran, dass Ihr privater Schlüssel sicher auf dem generierten Server oder Hardwaremodul verbleiben sollte.
-
Generieren Sie den CSR
Verwenden Sie ein CSR-Generierungstool, das auf Ihre Serversoftware abgestimmt ist. Dieses Tool fragt Sie nach den in Schritt 1 vorbereiteten Details und dem in Schritt 2 generierten privaten Schlüssel. Das Tool generiert dann eine verschlüsselte Datei mit der Erweiterung .csr oder .req.
Während des CSR-Generierungsprozesses werden Sie aufgefordert, Ihre Daten (allgemeiner Name, Organisation, Ort usw.) einzugeben.
CSR aus Luna HSM generieren
Wir werden CSR auf Thales DPoD generieren. Daher müssen wir zunächst die Anwendungseigentümerkonfiguration durchführen, d. h. einen Client hinzufügen und konfigurieren.
Die Clientinstallation verwendet eine .zip-Datei (Windows) oder eine .tar-Datei (Linux), um die für die Konfiguration der Verbindung Ihres Systems zum Luna Cloud HSM-Dienst erforderlichen Client-Dateien bereitzustellen . Die Client-.zip-Datei enthält eine vorkonfigurierte crystoki-template.ini-Datei und eine Client-Archivdatei mit einer Bibliothek und Binärdateien.
Installieren des Service-Clients
-
Rufen Sie die Serviceseite auf und klicken Sie auf den Service oder den Partitionsnamen, für den Sie einen Client generieren möchten.

-
Klicken Sie auf „Neuer Serviceclient“ – das Fenster „Serviceclient erstellen“ wird angezeigt.

-
Geben Sie im Fenster „Service-Client erstellen“ einen Client-Namen ein (z. B. Pega-Macro) und wählen Sie „Service-Client erstellen“ aus.

Konfigurieren des installierten Service-Clients
- Ein neuer Kunde (in diesem Fall setup-PKI-Luna.zip) generiert und zum Herunterladen und Installieren auf Ihrem Client-Computer bereitgestellt.
- Der Client ist eine ZIP-Datei mit den Systeminformationen, die zum Verbinden Ihres Computers mit einer HSM-Partition erforderlich sind. Weitere Informationen zu den Client-Inhalten finden Sie im Abschnitt „Client-Inhalte“.
- Übertragen Sie den Client auf Ihren Computer. Sie können den Client über SCP, PSCP, WinSCP, FTPS oder andere Sicherheitstools übertragen.
- Entpacken Sie die Datei mithilfe der Windows-Benutzeroberfläche oder eines Entpackungstools – setup-PKI-Luna.zip.
- Dekomprimieren Sie die Datei cvclient-min.zip.
- Extrahieren Sie die Datei cvclient-min.zip in das Verzeichnis, das Sie im vorherigen Schritt erstellt haben. Dieser Speicherort wird für den Befehl setenv in Schritt 7 benötigt. Extrahieren Sie die Datei nicht in ein neues Verzeichnis für cvclient-min.zip.
-
Legen Sie die Umgebungsvariable fest. Öffnen Sie eine Administrator-Eingabeaufforderung. Klicken Sie mit der rechten Maustaste auf „Eingabeaufforderung“ und wählen Sie „Als Administrator ausführen“. Führen Sie in der Administrator-Eingabeaufforderung Folgendes aus:

Konfigurieren des SafeNet Key Storage Providers (KSP)
-
Das System benötigt Zugriff auf den SafeNet Key Storage Provider (KSP). Kopieren Sie die Datei SafeNetKSP.dll aus Ihrem heruntergeladenen Luna Cloud HSM Service Client nach C:\Windows\System32.
Hinweis: Wird die Datei SafeNetKSP.dll nicht kopiert, ist der Zugriff auf die SafeNet Key Storage Provider während der Integration nicht möglich. Wenn Sie beispielsweise Microsoft Active Directory-Zertifikatdienste konfigurieren, stehen die SafeNet Key Storage Provider bei der Einrichtung der Kryptografie für die Zertifizierungsstelle nicht zur Verfügung.
- Führen Sie KspConfig.exe aus
- Navigieren Sie zum KSP-Installationsverzeichnis.
- Doppelklicken Sie auf Registrieren oder Sicherheitsbibliothek anzeigen.
-
Klicken Sie auf Durchsuchen . Wählen Sie die Datei cryptoki.dll aus dem Luna Cloud HSM Service Client aus.
Klicken Sie auf Registrieren.

-
Nach erfolgreicher Registrierung wird eine Erfolgsmeldung angezeigt. Klicken Sie auf OK.

- Doppelklicken Sie auf „HSM-Slots registrieren“.
-
Registrieren Sie das HSM für den Administratorbenutzer. Öffnen Sie dazu das Dropdown-Menü „ Für Benutzer registrieren“ und wählen Sie „Administrator“ aus. Öffnen Sie anschließend das Dropdown-Menü „Domäne“ und wählen Sie Ihre Domäne aus. Öffnen Sie das Dropdown-Menü „Verfügbare Slots“ , wählen Sie die Dienstbezeichnung aus, geben Sie das Slot-Passwort ein und klicken Sie auf „Slot registrieren“.

-
Nach erfolgreicher Registrierung wird eine Erfolgsmeldung angezeigt. Klicken Sie auf OK.

-
Registrieren Sie das HSM für den Systembenutzer. Öffnen Sie das Dropdown-Menü „Für Benutzer registrieren“ und wählen Sie „SYSTEM“, das Dropdown-Menü „Domäne“ und „NT-AUTORITÄT“. Öffnen Sie das Dropdown-Menü „Verfügbare Slots“, wählen Sie die Servicebezeichnung aus, geben Sie das Slot-Passwort ein und klicken Sie auf „Slot registrieren“.

-
Nach erfolgreicher Registrierung wird die Meldung „Erfolgreich!“ angezeigt. Klicken Sie auf „OK“.

Generieren des CSR im Service Client
-
Erstellen Sie eine Datei namens request.inf und fügen Sie die folgenden Informationen ein, um eine Anfrage für ein SSL-Zertifikat zu generieren, das mit einem RSA- Schlüssel verbunden ist. Der Inhalt lautet:
[Version]
Signature = "$Windows NT$"
[NewRequest]
Subject = "C=US, S=Dallas, L=Texas, O=Encryption Consulting LLC, OU=Dev, [email protected], CN=ECIssued"
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength =2048
ProviderName = "Safenet Key Storage Provider"
KeyUsage = 0xf0
MachineKeySet =True
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.
Hinweis: Der gebräuchliche Name (CN) der betreffenden Person wurde für diese Anfrage willkürlich gewählt und kann sich ändern.
Die Parameter sind:
-
Signature
„$Windows NT$“ gibt an, dass die INF-Datei für die Verwendung mit Windows NT und späteren Windows-Versionen vorgesehen ist.
-
Betreff
- C - Definiert den zweistelligen Ländernamen für den Distinguished Subject Name (DN) der Zertifikatsanforderung. Dieser Parameter sollte im Betreff-DN vorhanden sein.
- S - Definiert den Statusnamen für den Distinguished Subject Name (DN) der Zertifikatsanforderung. Dieser Parameter sollte im Betreff-DN vorhanden sein.
- L - Definiert den Ort (normalerweise die Stadt) für den Distinguished Subject Name der Zertifikatsanforderung. Dieser Parameter kann im Subject DN vorhanden sein.
- Ö - Definiert den Organisationsnamen für den Distinguished Subject Name (DN) der Zertifikatsanforderung. Dieser Parameter sollte im Betreff-DN vorhanden sein.
- ODER - Definiert den Namen der Organisationseinheit für den Distinguished Subject Name (DN) der Zertifikatsanforderung. Dieser Parameter kann im Betreff-DN vorhanden sein.
- und - ist die offizielle oder Kontakt-E-Mail-Adresse der Zertifizierungsstelle.
- KN – Definiert den allgemeinen Namen für den Distinguished Subject Name (DN) der Zertifikatsanforderung. Dieser Parameter sollte im Betreff-DN vorhanden sein.
-
Hashing-Algorithmus
SHA256 setzt den Hash-Algorithmus auf SHA256, eine standardmäßige und sichere Wahl.
-
Schlüsselalgorithmus
RSA legt den Schlüsselalgorithmus auf RSA fest, einen weit verbreiteten Public-Key-Algorithmus.
-
Schlüssellänge
2048 legt die Länge des Schlüssels auf 2048 Bit fest. Dies ist der aktuelle Industriestandard für RSA-Schlüssel.
-
Anbietername
„SafeNet Key Storage Provider“ bezeichnet den zu verwendenden kryptografischen Dienstanbieter (CSP). Der CSP ist eine Softwarebibliothek, die kryptografische Funktionen implementiert. In diesem Fall wird der SafeNet Key Storage Provider verwendet.
-
Schlüsselverwendung
0xf0 gibt den Zweck des Schlüssels im Zertifikat an. Der hexadezimale Wert 0xf0 entspricht dem Binärwert 11110000, der die Schlüsselverwendungen „Digitale Signatur“ (0x80), „Schlüsselverschlüsselung“ (0x20), „Datenverschlüsselung“ (0x10) und „Schlüsselvereinbarung“ (0x08) darstellt.
-
Maschinenschlüsselsatz
„True“ bedeutet, dass der private Schlüssel im Zertifikatspeicher des lokalen Computers und nicht im Zertifikatspeicher des aktuellen Benutzers gespeichert ist.
-
EnhancedKeyUsageExtension
OID=1.3.6.1.5.5.7.3.1 ist ein Objektbezeichner (OID), der die Verwendung des Zertifikats angibt. Die OID 1.3.6.1.5.5.7.3.1 steht für „Serverauthentifizierung“, d. h. das Zertifikat dient der Authentifizierung von Servern bei der SSL/TLS-Kommunikation.
-
- Öffnen Sie als Administrator ein neues Eingabeaufforderungsfenster. Suchen Sie dazu im Startmenü nach „cmd“, klicken Sie mit der rechten Maustaste auf die Eingabeaufforderung und wählen Sie „Als Administrator ausführen“.
- Navigieren Sie zum Pfad, in dem sich requested.inf befindet, und drücken Sie die Eingabetaste.
-
Generieren Sie nun die Zertifikatsanforderung mit dem folgenden Befehl:
certreq -new request.inf request.req
Dieser Befehl erstellt eine neue Certificate Signing Request (CSR)-Datei mit dem Namen „request.req“ basierend auf der Konfiguration in Ihrer Datei „request.inf“. Sie können diese CSR-Datei für Ihr SSL-Zertifikat an eine Zertifizierungsstelle (CA) senden.
Signieren Sie die CSR mit Microsoft CA
Es gibt zwei verschiedene Möglichkeiten, einen CSR zu unterzeichnen:
Zertifikatsanforderung wird akzeptiert
-
Übertragen Sie die CSR-Datei an die ausstellende Zertifizierungsstelle und führen Sie den Befehl aus –
certreq -submit -attrib "CertificateTemplate:<Template Name>" "C:\MacroSign.csr"Hier ist der Vorlagenname = „EncryptionConsuCodeSigning“

-
Nachdem Sie die Zertifizierungsstelle aus der Liste der Zertifizierungsstellen ausgewählt haben, speichern Sie das Zertifikat unter einem passenden Namen. (Beispiel: Bei ECMacro sollte die Dateiendung entweder .crt oder .cer lauten.)

-
Nach erfolgreicher Ausführung finden Sie das Zertifikat unter „Ausgestellte Zertifikate“ in der Zertifizierungsstelle.

-
Prüfen Sie, ob „Code Signing“ im Attribut „ Enhanced Key Usage “ des neu generierten Zertifikats enthalten ist.

Über die Web-Anmeldung
-
Die verfügbaren Vorlagen in der Zertifizierungsstelle

-
Führen Sie nun die Webregistrierung durch, nachdem Sie eine Vorlage ausgewählt haben – „Codesignierung“. (in unserem Fall – https://ca02.encon.com/certsrv/ )

-
Nach Auswahl von „Zertifikat anfordern“ erscheint dieser Bildschirm. Wählen Sie „Erweiterte Zertifikatsanforderung“ . (In unserem Fall: https://ca02.encon.com/certsrv/certrqus.asp )

-
Fügen Sie den Inhalt der CSR in das Feld „Gespeicherte Anfrage“ ein und wählen Sie in der Zertifikatvorlage „ Codesignierung“ aus . Klicken Sie anschließend auf „Absenden“.

-
Daraufhin werden Ihnen zwei Optionen angezeigt: „Zertifikat herunterladen“ und „Zertifikatskette herunterladen“ . Wählen Sie die zweite Option und laden Sie die Zertifikatskette auf Ihr lokales System herunter.

-
So sieht die Zertifikatskette aus.

Hinzufügen des privaten Schlüssels zum Zertifikat
-
Akzeptieren und Installieren des Zertifikats, damit es in der Windows-Umgebung verfügbar ist.

-
Fügen Sie als Nächstes das Zertifikat mit folgendem Befehl zu den „Persönlichen“ Zertifikaten unter „ Zertifikate – Lokaler Computer“ hinzu:
certutil -store MY “<thumbprint of the certificate>”
Problemlösung
-
So überprüfen Sie die Liste der CA-Vorlagen in der ausstellenden CA:
certutil -CATemplates
-
Wenn der private Schlüssel nicht an das Zertifikat angehängt ist, versuchen Sie diesen „Repairstore“-Befehl

-
Die CSP/KSP-Registrierung schlägt unter Windows fehl.
CSP/KSP-Registrierungen können fehlschlagen, wenn Windows Update fehlt, da es einen Schritt enthält, der überprüft, ob die DLLs mit dem Thales-Zertifikat signiert sind, das auf die DigiCert-Vertrauenswurzel G4 zurückgeht (unter Einhaltung der Sicherheitsstandards der Branche).
Dieser Schritt kann nur erfolgreich sein, wenn Ihr Windows-Betriebssystem über das erforderliche Zertifikat verfügt. Wenn Ihr Windows-Betriebssystem aktualisiert ist, sollten Sie dieses Zertifikat bereits besitzen.
Wenn Ihr Luna HSM-Client-Host mit dem Internet verbunden ist, verwenden Sie die folgenden Befehle, um das Zertifikat manuell zu aktualisieren:
certutil -urlcache -f http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt
certutil -addstore -f root DigiCertTrustedRootG4.crtSo aktualisieren Sie einen nicht verbundenen Host manuell
- Laden Sie DigiCert Trusted Root G4 (http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt) auf einen separaten, mit dem Internet verbundenen Computer.
- Transportieren Sie das Zertifikat mit Ihren genehmigten Mitteln zum Luna Client-Host in ein Ort Ihrer Wahl
-
Fügen Sie das Zertifikat mit dem folgenden Befehl zum Zertifikatspeicher hinzu:
certutil -addstore -f root <downloaded cert path>
-
Falls der Betreff der Zertifikatsanforderung nicht im Zertifikat angezeigt wird, versuchen Sie Folgendes:
- Öffnen Sie die Zertifikatvorlagenkonsole: Öffnen Sie auf dem AD CS-Server die Zertifikatvorlagenkonsole, indem Sie „certtmpl.msc“ aus dem Dialogfeld „Ausführen“ (Win + R) ausführen.
- Vorhandene Vorlage duplizieren: Es empfiehlt sich grundsätzlich, eine vorhandene Vorlage zu duplizieren, anstatt sie zu ändern. Suchen Sie eine Vorlage, die Ihrer gewünschten Vorlage ähnelt, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Vorlage duplizieren“.
-
Vorlage konfigurieren: Im Eigenschaftendialog der neuen Vorlage können Sie verschiedene Einstellungen konfigurieren. So legen Sie die Felder „Schlüsselverwendung“ und „Erweiterte Schlüsselverwendung“ fest:
Schlüsselverwendung: Gehen Sie zum Tab „Erweiterungen“, wählen Sie in der Liste „Schlüsselverwendung“ aus und klicken Sie auf „Bearbeiten“. Hier können Sie die gewünschten Schlüsselverwendungen auswählen, z. B. „Digitale Signatur“, „Schlüsselverschlüsselung“ usw.
Erweiterte Schlüsselverwendung: Wählen Sie auf der Registerkarte „Erweiterungen“ die Option „Anwendungsrichtlinien“ und klicken Sie auf „Bearbeiten“. Hier können Sie die gewünschten erweiterten Schlüsselverwendungen hinzufügen, z. B. „Codesignierung“, „Serverauthentifizierung“ usw.
- Vorlage speichern: Wenn Sie die Vorlage nach Ihren Wünschen konfiguriert haben, geben Sie ihr einen Namen und speichern Sie sie.
- Vorlage ausstellen: Die neue Vorlage ist nun verfügbar, muss aber erst ausgestellt werden, bevor sie verwendet werden kann. Klicken Sie in der Konsole der Zertifizierungsstelle (certsrv.msc) mit der rechten Maustaste auf „Zertifikatvorlagen“, wählen Sie „Neu“, dann „Auszustellende Zertifikatvorlage“ und wählen Sie Ihre neue Vorlage aus.
Wenn Sie mit dieser Vorlage ein Zertifikat anfordern, sollten die Felder „Schlüsselverwendung“ und „Erweiterte Schlüsselverwendung“ entsprechend Ihrer Konfiguration enthalten sein.
Fazit
Nach der Erstellung kann die CSR verwendet werden, um ein SSL-Zertifikat bei einer Zertifizierungsstelle anzufordern. Die Daten der CSR werden von der Zertifizierungsstelle zum Erstellen des Zertifikats verwendet. Dies gewährleistet die Sicherheit Ihrer Website und die sichere Übertragung von Informationen.
Auch wenn die Verfahren und Protokolle kompliziert erscheinen, ist die Verwendung eines SSL-Zertifikats zur Sicherung Ihrer Website unerlässlich, um das Vertrauen der Besucher zu gewinnen und wichtige Informationen zu schützen. Eine CSR ist unerlässlich, um sicherzustellen, dass Ihr SSL-Zertifikat die richtigen Daten enthält.
