Schritt 2: Generieren oder Importieren eines privaten Schlüssels und SSL/TLS-Zertifikats - AWS CloudHSM

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schritt 2: Generieren oder Importieren eines privaten Schlüssels und SSL/TLS-Zertifikats

Um HTTPS zu aktivieren, benötigt Ihre Tomcat-Webserver-Anwendung einen privaten Schlüssel und ein entsprechendes SSL/TLS-Zertifikat. Um den SSL/TLS-Offload auf dem Webserver verwenden zu können AWS CloudHSM, müssen Sie den privaten Schlüssel in einem HSM in Ihrem Cluster speichern. AWS CloudHSM

Anmerkung

Wenn Sie noch nicht über einen privaten Schlüssel und ein entsprechendes Zertifikat verfügen, generieren Sie einen privaten Schlüssel in einem HSM. Sie verwenden den privaten Schlüssel, um eine Zertifikatsignierungsanforderung (CSR) zu erstellen, mit der Sie das SSL/TLS-Zertifikat erstellen.

Sie erstellen eine lokale AWS CloudHSM KeyStore Datei, die einen Verweis auf Ihren privaten Schlüssel auf dem HSM und das zugehörige Zertifikat enthält. Ihr Webserver verwendet die AWS CloudHSM KeyStore Datei, um den privaten Schlüssel auf dem HSM während des SSL/TLS-Offloads zu identifizieren.

Generieren eines privaten Schlüssels

In diesem Abschnitt erfahren Sie, wie Sie mit dem From JDK ein Schlüsselpaar generieren. KeyTool Sobald Sie ein key pair im HSM generiert haben, können Sie es als KeyStore Datei exportieren und das entsprechende Zertifikat generieren.

Je nach Anwendungsfall können Sie entweder ein RSA- oder ein EC-Schlüsselpaar generieren. Im Folgenden wird beschrieben, wie Sie ein RSA-Schlüsselpaar generieren.

Verwenden Sie den genkeypair Befehl in KeyTool , um ein RSA-Schlüsselpaar zu generieren
  1. Nachdem Sie die <VARIABLES> unten durch Ihre spezifischen Daten ersetzt haben, verwenden Sie den folgenden Befehl, um eine Keystore-Datei mit dem Namen jsse_keystore.keystore, zu erzeugen, die einen Verweis auf Ihren privaten Schlüssel auf dem HSM enthält.

    $ keytool -genkeypair -alias <UNIQUE ALIAS FOR KEYS> -keyalg <KEY ALGORITHM> -keysize <KEY SIZE> -sigalg <SIGN ALGORITHM> \ -keystore <PATH>/<JSSE KEYSTORE NAME>.keystore -storetype CLOUDHSM \ -dname CERT_DOMAIN_NAME \ -J-classpath '-J'$JAVA_LIB'/*:/opt/cloudhsm/java/*:./*' \ -provider "com.amazonaws.cloudhsm.jce.provider.CloudHsmProvider" \ -providerpath "$CLOUDHSM_JCE_LOCATION" \ -keypass <KEY PASSWORD> -storepass <KEYSTORE PASSWORD>
    • <PATH>: Der Pfad, in dem Sie Ihre Keystore-Datei generieren möchten.

    • <UNIQUE ALIAS FOR KEYS>: Dies wird verwendet, um Ihren Schlüssel auf dem HSM eindeutig zu identifizieren. Dieser Alias wird als LABEL-Attribut für den Schlüssel festgelegt.

    • <KEY PASSWORD>: Wir speichern den Verweis auf Ihren Schlüssel in der lokalen Keystore-Datei, und dieses Passwort schützt diese lokale Referenz.

    • <KEYSTORE PASSWORD>: Dies ist das Passwort für Ihre lokale Keystore-Datei.

    • <JSSE KEYSTORE NAME>: Name der Keystore-Datei.

    • <CERT DOMAIN NAME>: X.500 Eindeutiger Name.

    • <KEY ALGORITHM>: Schlüsselalgorithmus zur Generierung des Schlüsselpaars (z. B. RSA und EC).

    • <KEY SIZE>: Schlüsselgröße zum Generieren des Schlüsselpaars (z. B. 2048, 3072 und 4096).

    • <SIGN ALGORITHM>: Schlüsselgröße zum Generieren des Schlüsselpaars (z. B. SHA1withRSA, SHA224withRSA, SHA256withRSA, SHA384withRSA und SHA512withRSA).

  2. Um zu bestätigen, dass der Befehl erfolgreich war, geben Sie den folgenden Befehl ein und überprüfen Sie, ob Sie erfolgreich ein RSA-Schlüsselpaar generiert haben.

    $ ls <PATH>/<JSSE KEYSTORE NAME>.keystore

Generieren eines selbstsignierten Zertifikats

Nachdem Sie zusammen mit der Keystore-Datei einen privaten Schlüssel generiert haben, können Sie diese Datei verwenden, um eine Certificate Signing Request (CSR) und ein Zertifikat zu generieren.

In einer Produktionsumgebung verwenden Sie in der Regel eine Zertifikatsstelle (CA) zum Erstellen eines Zertifikats aus einer CSR. Für eine Testumgebung ist keine CA erforderlich. Wenn Sie eine Zertifizierungsstelle verwenden, senden Sie ihnen die CSR-Datei und verwenden Sie das signierte SSL/TLS-Zertifikat, das sie Ihnen auf Ihrem Webserver für HTTPS zur Verfügung stellen.

Als Alternative zur Verwendung einer Zertifizierungsstelle können Sie die verwenden, KeyTool um ein selbstsigniertes Zertifikat zu erstellen. Selbstsignierte Zertifikate sind nicht vertrauenswürdig für Browser und sollten in Produktionsumgebungen nicht verwendet werden. Sie können in Testumgebungen verwendet werden.

Warnung

Selbstsignierte Zertifikate sollten nur in einer Testumgebung verwendet werden. Für eine Produktionsumgebung, verwenden Sie eine sicherere Methode, wie z. B. eine Zertifikatstelle, um ein Zertifikat zu erstellen.

Themen
    Generieren eines Zertifikats
    1. Besorgen Sie sich eine Kopie Ihrer Keystore-Datei, die in einem früheren Schritt generiert wurde.

    2. Führen Sie den folgenden Befehl aus, um mit dem eine Zertifikatsignieranforderung (CSR) KeyTool zu erstellen.

      $ keytool -certreq -keyalg RSA -alias unique_alias_for_key -file certreq.csr \ -keystore <JSSE KEYSTORE NAME>.keystore -storetype CLOUDHSM \ -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass <KEY PASSWORD> -storepass <KEYSTORE PASSWORD>
      Anmerkung

      Die Ausgabedatei der Zertifikatssignierungsanforderung ist certreq.csr.

    Ein Zertifikat signieren
    • Nachdem Sie die <VARIABLES> unten durch Ihre spezifischen Daten ersetzt haben, führen Sie den folgenden Befehl aus, um Ihre CSR mit Ihrem privaten Schlüssel auf Ihrem HSM zu signieren. Dadurch wird ein selbstsigniertes Zertifikat erstellt.

      $ keytool -gencert -infile certreq.csr -outfile certificate.crt \ -alias <UNIQUE ALIAS FOR KEYS> -keypass <KEY_PASSWORD> -storepass <KEYSTORE_PASSWORD> -sigalg SIG_ALG \ -storetype CLOUDHSM -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keystore jsse_keystore.keystore
      Anmerkung

      certificate.crt ist das signierte Zertifikat, das den privaten Schlüssel des Alias verwendet.

    Ein Zertifikat in Keystore importieren
    • Nachdem Sie die <VARIABLES> unten durch Ihre spezifischen Daten ersetzt haben, führen Sie den folgenden Befehl aus, um ein signiertes Zertifikat als vertrauenswürdiges Zertifikat zu importieren. In diesem Schritt wird das Zertifikat in dem durch den Alias identifizierten Keystore-Eintrag gespeichert.

      $ keytool -import -alias <UNIQUE ALIAS FOR KEYS> -keystore jsse_keystore.keystore \ -file certificate.crt -storetype CLOUDHSM \ -v -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass <KEY PASSWORD> -storepass <KEYSTORE_PASSWORD>
    Konvertiert ein Zertifikat in ein PEM
    • Führen Sie den folgenden Befehl aus, um die signierte Zertifikatsdatei (.crt) in eine PEM zu konvertieren. Die PEM-Datei wird verwendet, um die Anfrage vom HTTP-Client zu senden.

      $ openssl x509 -inform der -in certificate.crt -out certificate.pem

    Nachdem Sie diese Schritte ausgeführt haben, fahren Sie mit Schritt 3: Konfigurieren des Webservers fort.