Verwenden von SSL - AWS OpsWorks

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.

Verwenden von SSL

Wichtig

Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

Wenn Sie SSL in Ihrer Anwendung nutzen möchten, müssen Sie zunächst ein digitales Serverzertifikat von einer Zertifizierungsstelle einholen. Der Einfachheit halber wird in dieser Anleitung ein eigenes Zertifikat erstellt und signiert. Selbstsignierte Zertifikate sind für Lern- und Testzwecke hilfreich. Für Produktions-Stacks sollten jedoch grundsätzlich von einer Zertifizierungsstelle signierte Zertifikate verwendet werden.

In dieser Anleitung werden Sie Folgendes tun:

  1. Installieren und konfigurieren Sie OpenSSL.

  2. Erstellen eines privaten Schlüssels

  3. Erstellen einer Zertifikatssignierungsanforderung

  4. Generieren eines selbstsignierten Zertifikats

  5. Bearbeiten der Anwendung mit Ihren Zertifikatsinformationen

Wichtig

Wenn in Ihrer Anwendung SSL genutzt wird, sollten Sie in den Anwendungsserver-Ebenen nach Möglichkeit SSLv3 deaktivieren, um die Schwachstellen zu vermeiden, die unter CVE-2014-3566 beschrieben sind. Wenn Ihr Stack eine Ganglia-Schicht enthält, sollten Sie SSL v3 auch für diese Ebene deaktivieren. Im Einzelnen hängt dies von dem jeweiligen Layer ab, wie nachfolgend genauer beschrieben.

Schritt 1: Installieren und Konfigurieren von OpenSSL

Um Serverzertifikate erstellen und hochladen zu können, muss Ihr Tool die Protokolle SSL und TLS unterstützen. Das Open-Source-Tool OpenSSL bietet die grundlegenden Verschlüsselungsfunktionen, die Sie zum Erstellen eines RSA-Tokens und Signieren des Tokens mit Ihrem privaten Schlüssel benötigen.

Im folgenden Verfahren gehen wir davon aus, dass auf Ihrem Computer noch kein OpenSSL installiert ist.

So installieren Sie OpenSSL unter Linux und Unix
  1. Rufen Sie OpenSSL: Source, Tarballs (OpenSSL: Quelle, Tarballs) auf.

  2. Laden Sie die aktuelle Quelldatei herunter.

  3. Erstellen Sie das Paket.

So installieren Sie OpenSSL unter Windows
  1. Wenn das Microsoft Visual C++ 2008 Redistributable Package noch nicht auf Ihrem System installiert ist, laden Sie das Paket herunter.

  2. Führen Sie das Installationsprogramm aus und befolgen Sie die Anweisungen des Microsoft Visual C++ 2008 Redistributable-Installationsassistenten.

  3. Rufen Sie OpenSSL: Binary Distributions (OpenSSL: Binäre Verteilungen) auf, klicken Sie auf die OpenSSL-Binärdatei für Ihre Umgebung und speichern Sie das Installationsprogramm lokal.

  4. Führen Sie das Installationsprogramm aus und befolgen Sie die Anweisungen im OpenSSL Setup Wizard (OpenSSL-Einrichtungsassistent), um die Binärdateien zu installieren.

Erstellen Sie eine Umgebungsvariable, die auf den Installationspunkt von OpenSSL verweist. Öffnen Sie hierfür ein Terminal oder Befehlsfenster und geben Sie folgende Befehlszeilen ein.

  • Unter Linux und Unix

    export OpenSSL_HOME=path_to_your_OpenSSL_installation
  • Unter Windows

    set OpenSSL_HOME=path_to_your_OpenSSL_installation

Um den Pfad der OpenSSL-Binärdatei der Pfadvariablen Ihres Computers hinzuzufügen, öffnen Sie ein Terminal oder Befehlsfenster und geben Sie die folgenden Befehlszeilen ein.

  • Unter Linux und Unix

    export PATH=$PATH:$OpenSSL_HOME/bin
  • Unter Windows

    set Path=OpenSSL_HOME\bin;%Path%
Anmerkung

Alle Änderungen, die Sie mithilfe dieser Befehlszeilen an den Umgebungsvariablen vornehmen, sind nur für die aktuelle Befehlszeilensitzung gültig.

Schritt 2: Erstellen eines privaten Schlüssels

Sie benötigen einen eindeutigen privaten Schlüssel, um Ihre Zertifikatsignieranforderung zu erstellen. Sie können den Schlüssel mithilfe der folgenden Befehlszeile erstellen:

openssl genrsa 2048 > privatekey.pem

Schritt 3: Erstellen einer Zertifikatsignieranforderung

Ein Zertifikatsignieranforderung (Certificate Signing Request, CSR) ist eine Datei, die Sie an eine Zertifizierungsstelle senden, um ein digitales Serverzertifikat zu erhalten. Sie können die CSR-Anforderung mithilfe der folgenden Befehlszeile erstellen:

openssl req -new -key privatekey.pem -out csr.pem

Die Ausgabe für den Befehl sieht dann wie folgt aus:

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.

Mithilfe der folgenden Tabelle können Sie die Zertifikatsanforderung erstellen.

Daten für die Zertifikatsanforderung
Name Beschreibung Beispiel
Ländername Die zweistellige ISO-Abkürzung für Ihr Land US = USA
Bundesstaat oder Provinz Der Name des Bundesstaats oder der Provinz, in dem bzw. der sich Ihre Organisation befindet. Dieser Name darf nicht abgekürzt werden. Washington
Locality Name Der Name der Stadt, in der sich Ihre Organisation befindet. Seattle
Name der Organisation Der vollständige, offizielle Name Ihrer Organisation. Kürzen Sie den Namen Ihrer Organisation nicht ab. UnternehmenX
Organisationseinheit (Optional) Für weitere Informationen zu Ihrer Organisation Marketing
Common Name Der vollqualifizierte Domänenname für Ihr CNAME. Bei der Überprüfung des Zertifikatsnamens wird eine Warnung angezeigt, wenn dieser nicht genau übereinstimmt. www.example.com
E-Mail-Adresse Die E-Mail-Adresse des Serveradministrators someone@example.com
Anmerkung

Oft ist nicht klar, was der allgemeine Name ist, und dieses Feld wird dann falsch ausgefüllt. Der allgemeine Name ist in der Regel der Hostname zusammen mit dem Domänennamen. Er entspricht dem Schema "www.example.com" oder "example.com". CSR-Anfragen müssen den korrekten allgemeinen Namen enthalten.

Schritt 4: Einreichen der CSR-Anfrage bei der Zertifizierungsstelle

Für die Produktion müssen Sie eine CSR-Anfrage für ein Serverzertifikat bei einer Zertifizierungsstelle einreichen. Hierfür benötigen Sie möglicherweise weitere Informationen oder Identitätsnachweise. Wenn Ihr Antrag erfolgreich ist, erhalten Sie von der Zertifizierungsstelle ein digital signiertes Zertifikat und eventuell auch eine Zertifikatskettendatei. AWS empfiehlt keine bestimmte Zertifizierungsstelle. Eine unvollständige Liste der verfügbaren Zertifizierungsstellen finden Sie unter Certificate Authority - Providers auf Wikipedia.

Sie können auch ein selbstsigniertes Zertifikat für Testzwecke erstellen. Verwenden Sie für dieses Beispiel die folgende Befehlszeile, um ein selbstsigniertes Zertifikat zu erstellen.

openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt

Die Ausgabe sieht etwa folgendermaßen aus:

Loading 'screen' into random state - done Signature ok subject=/C=us/ST=washington/L=seattle/O=corporationx/OU=marketing/CN=example.com/emailAddress=someone@example.com Getting Private key

Schritt 5: Bearbeiten der App

Nachdem Sie Ihr Zertifikat generiert und signiert haben, müssen Sie in Ihrer App SSL aktivieren und die Zertifikatsinformationen eintragen. Wählen Sie auf der Seite Apps eine App aus, um die Detailseite aufzurufen, und klicken Sie dann auf Edit App (App bearbeiten). Wählen Sie für Enable SSL (SSL aktivieren) die Option Yes (Ja) aus, um SSL zu aktivieren. Es werden folgende Konfigurationsoptionen angezeigt.

SSL Certificate (SSL-Zertifikat)

Kopieren Sie den Inhalt der CRT-Zertifikatsdatei für den öffentlichen Schlüssel in das Feld. Das Zertifikat sollte etwa wie folgt aussehen:

-----BEGIN CERTIFICATE----- MIICuTCCAiICCQCtqFKItVQJpzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMC dXMxEzARBgNVBAgMCndhc2hpbmd0b24xEDAOBgNVBAcMB3NlYXR0bGUxDzANBgNV BAoMBmFtYXpvbjEWMBQGA1UECwwNRGV2IGFuZCBUb29sczEdMBsGA1UEAwwUc3Rl cGhhbmllYXBpZXJjZS5jb20xIjAgBgkqhkiG9w0BCQEWE3NhcGllcmNlQGFtYXpv ... -----END CERTIFICATE-----
Anmerkung

Wenn Sie Nginx verwenden und eine Zertifikatskettendatei haben, hängen Sie deren Inhalt an die Zertifikatsdatei für den öffentlichen Schlüssel an.

Wenn Sie ein vorhandenes Zertifikat aktualisieren, gehen Sie wie folgt vor:

  • Wählen Sie Update SSL certificate (SSL-Zertifikat aktualisieren) aus, um das Zertifikat zu aktualisieren.

  • Falls das neue Zertifikat nicht mit dem vorhandenen privaten Schlüssel übereinstimmt, wählen Sie Update SSL certificate key (SSL-Zertifikatschlüssel aktualisieren) aus.

  • Wenn das neue Zertifikat nicht mit der vorhandenen Zertifikatskette übereinstimmt, wählen Sie Update SSL certificates (SSL-Zertifikate aktualisieren) aus.

SSL Certificate Key (SSL-Zertifikatschlüssel)

Kopieren Sie den Inhalt der privaten Schlüsseldatei (PEM-Datei) in das Feld. Es sollte etwa wie folgt aussehen:

----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQC0CYklJY5r4vV2NHQYEpwtsLuMMBhylMrgBShKq+HHVLYQQCL6 +wGIiRq5qXqZlRXje3GM5Jvcm6q0R71MfRIl1FuzKyqDtneZaAIEYniZibHiUnmO /UNqpFDosw/6hY3ONk0fSBlU4ivD0Gjpf6J80jL3DJ4R23Ed0sdL4pRT3QIDAQAB AoGBAKmMfWrNRqYVtGKgnWB6Tji9QrKQLMXjmHeGg95mppdJELiXHhpMvrHtpIyK ... -----END RSA PRIVATE KEY-----
SSL certificates of Certification Authorities (SSL-Zertifikate von Zertifizierungsstellen)

Falls Sie eine Zertifikatskettendatei haben, kopieren Sie deren Inhalt in das Feld.

Anmerkung

Falls Sie Nginx verwenden, muss dieses Feld leer bleiben. Wenn Sie eine Zertifikatskettendatei haben, hängen Sie diese über SSL Certificate (SSL-Zertifikat) an die Zertifikatsdatei des öffentlichen Schlüssels an.

Klicken Sie auf Save (Speichern) und stellen Sie die App erneut bereit, um die Online-Instances zu aktualisieren.

Für die integrierten Anwendungsserverschichten aktualisiert AWS OpsWorks Stacks automatisch die Serverkonfiguration. Nach der Bereitstellung können Sie die Installation von OpenSSL wie nachfolgend beschrieben überprüfen.

So überprüfen Sie die OpenSSL-Installation
  1. Rufen Sie die Seite Instances auf.

  2. Klicken Sie auf die IP-Adresse der Anwendungsserver-Instance oder die IP-Adresse des Load Balancers (bei Verwendung eines Load Balancers), um die App auszuführen.

  3. Ändern Sie das Präfix der IP-Adresse von http:// in https:// und aktualisieren Sie den Browser, um zu überprüfen, ob die Seite mit SSL korrekt geladen wird.

Benutzer, die Apps für die Ausführung in Mozilla Firefox konfiguriert haben, erhalten gelegentlich den folgenden Zertifikatsfehler: SEC_ERROR_UNKNOWN_ISSUER. Dieser Fehler kann durch Zertifikatersetzung in den Antivirus- und Anti-Malware-Programmen Ihrer Organisation, durch bestimmte Software zur Überwachung und Filterung des Netzwerkdatenverkehrs und durch Malware verursacht werden. Weitere Informationen zur Behebung dieses Fehlers finden Sie unter Beheben der Fehlercodes in der Meldung „Diese Verbindung ist nicht sicher“ auf sicheren Websites auf der Mozilla Firefox Support-Website.

Bei allen anderen Ebenen, einschließlich benutzerdefinierten Ebenen, fügt AWS OpsWorks  Stacks die SSL-Einstellungen automatisch den deploy-Attributen der App hinzu. Um die Informationen aus dem Knotenobjekt abzurufen und den Server zu konfigurieren, müssen Sie ein benutzerdefiniertes Rezept implementieren.