

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.

# Serverzertifikate
<a name="configuring-https.certificate"></a>

In diesem Thema werden die verschiedenen Arten von Zertifikaten beschrieben, die Sie zur Konfiguration von HTTPS verwenden können, und wann die einzelnen Zertifikate jeweils angewendet werden müssen. Die Unterthemen in diesem Abschnitt enthalten Anweisungen zum Erstellen Ihres eigenen Zertifikats und zum Hochladen.

**AWS Certificate Manager (ACM)**  
Für die Bereitstellung und Verwaltung von Serverzertifikaten empfehlen wir ACM zu verwenden. Sie können dies programmgesteuert oder mit dem tun. AWS CLI Mit ACM können Sie kostenlos ein vertrauenswürdiges Zertifikat für Ihre Domainnamen erstellen.

 ACM-Zertifikate können nur mit AWS Load Balancern und CloudFront Amazon-Distributionen verwendet werden, und ACM ist nur in bestimmten Regionen verfügbar. AWS Informationen zur Verwendung eines ACM-Zertifikats mit Elastic Beanstalk finden Sie unter [Konfiguration der HTTPS-Terminierung am Load Balancer](configuring-https-elb.md). [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) 

**Anmerkung**  
 Eine Liste der Regionen, in denen ACM verfügbar ist, finden Sie unter [ACM-Endpunkte und](https://docs.aws.amazon.com/general/latest/gr/acm.html) Kontingente im. *Allgemeine Amazon Web Services-Referenz* 

Wenn ACM in Ihrer AWS Region nicht verfügbar ist, können Sie ein Drittanbieter-Zertifikat oder ein selbstsigniertes Zertifikat und einen privaten Schlüssel auf (IAM) hochladen. AWS Identity and Access Management Sie können den verwenden, AWS CLI um das Zertifikat hochzuladen. In IAM gespeicherte Zertifikate können mit Load Balancern und CloudFront Distributionen verwendet werden. Weitere Informationen finden Sie unter [Hochladen eines Zertifikats in IAM](configuring-https-ssl-upload.md).

**Zertifikat eines Drittanbieters**  
Wenn ACM in Ihrer Region nicht verfügbar ist, können Sie ein vertrauenswürdiges Zertifikat von einem Drittanbieter kaufen. Ein Drittanbieter-Zertifikat kann verwendet werden, um HTTPS-Datenverkehr auf Ihrem Load Balancer, auf den Backend-Instances oder beiden zu entschlüsseln.

**Selbstsigniertes Zertifikat**  
Für die Entwicklung und das Testen können Sie selbst [ein Zertifikat erstellen und signieren](configuring-https-ssl.md). Verwenden Sie dazu Open Source-Tools. Selbstsignierte Zertifikate können kostenlos und einfach erstellt werden, sie können aber nicht für die Front-End-Entschlüsselung auf öffentlichen Websites verwendet werden. Wenn Sie versuchen, ein selbstsigniertes Zertifikat für eine HTTPS-Verbindung mit einem Client zu verwenden, zeigt der Browser des Benutzers eine Fehlermeldung an, die darauf hinweist, dass Ihre Website nicht sicher ist. Sie können jedoch ein selbstsigniertes Zertifikat verwenden, um Backend-Verbindungen ohne Probleme zu sichern.

# Erstellen und Signieren eines X.509-Zertifikats
<a name="configuring-https-ssl"></a>

Sie können ein X.509-Zertifikat für Ihre Anwendung mit `OpenSSL` erstellen. OpenSSL ist eine Standard-Open-Source-Bibliothek, die eine Vielzahl von kryptografischen Funktionen unterstützt, einschließlich der Erstellung und Signierung von x509-Zertifikaten. Weitere Informationen zu OpenSSL finden Sie unter [www.openssl.org](https://www.openssl.org/).

**Anmerkung**  
Sie müssen nur ein Zertifikat lokal erstellen, wenn Sie [HTTPS in einer Einzel-Instance-Umgebung verwenden](https-singleinstance.md) oder [auf dem Backend neu verschlüsseln](configuring-https-endtoend.md) möchten mit einem selbstsignierten Zertifikat. Wenn Sie einen Domainnamen besitzen, können Sie mithilfe von AWS Certificate Manager (ACM) kostenlos ein Zertifikat in einer Umgebung mit Lastenausgleich erstellen AWS und verwenden. Weitere Informationen finden Sie unter [Request a Certificate (Anfordern eines Zertifikats)](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) im *AWS Certificate Manager Benutzerhandbuch*.

Führen Sie `openssl version` in der Befehlszeile aus, um zu prüfen, ob Sie bereits OpenSSL installiert haben. Wenn Sie dies nicht tun, können Sie den Quellcode anhand der Anweisungen im [öffentlichen GitHub Repository](https://github.com/openssl/openssl) erstellen und installieren oder Ihren bevorzugten Paketmanager verwenden. OpenSSL ist auch auf den Linux-Images von Elastic Beanstalk installiert. Eine schnelle Alternative besteht also darin, mithilfe des Befehls der [EB-CLI](eb-cli3.md) eine Verbindung zu einer EC2 Instance in einer laufenden Umgebung herzustellen: **eb ssh**

```
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
```

Sie müssen einen privaten RSA-Schlüssel erstellen, um Ihre Zertifikatsignieranforderung zu erstellen. Zum Erstellen Ihres privaten Schlüssels verwenden Sie den Befehl **openssl genrsa**:

```
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
```

*privatekey.pem*  
Der Name der Datei, in der Sie den privaten Schlüssel speichern möchten. Normalerweise zeigt der Befehl **openssl genrsa** den Inhalt des privaten Schlüssels auf dem Bildschirm an; dieser Befehl übergibt die Ausgabe jedoch in eine Datei. Wählen Sie einen beliebigen Dateinamen und speichern Sie die Datei an einem sicheren Ort, sodass Sie sie später abrufen können. Wenn Sie den privaten Schlüssel verlieren, können Sie das Zertifikat nicht mehr verwenden.

Eine CSR ist eine Datei, die Sie an eine Zertifizierungsstelle senden, um ein digitales Serverzertifikat zu erhalten. Zum Erstellen einer CSR verwenden Sie den Befehl **openssl req**:

```
$ openssl req -new -key privatekey.pem -out csr.pem
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.
```

Geben Sie die erforderlichen Informationen ein und drücken Sie **Enter (Eingabetaste)**. Die folgende Tabelle beschreibt und enthält Beispiele für jedes Feld.


****  

| 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. | Beispielunternehmen | 
| Organisatorische Einheit | Optional, für weitere Informationen zu Ihrer Organisation. | Marketing | 
| Common Name | Der vollqualifizierte Domänenname für Ihre Website. Dieser muss mit dem Domänennamen übereinstimmen, den Benutzer sehen, wenn sie Ihre Website besuchen. Andernfalls werden Zertifikatfehler angezeigt. | www.example.com | 
| E-Mail-Adresse | Die E-Mail-Adresse des Websiteadministrators. | someone@example.com | 

Sie können die Signierungsanforderung zur Signierung an einen Dritten weitergeben oder sie für Entwicklung und Tests selbst signieren. Selbstsignierte Zertifikate können auch für Backend-HTTPS zwischen einem Load Balancer und Instanzen verwendet werden. EC2 

Zum Signieren des Zertifikats verwenden Sie den Befehl **openssl x509**. Im folgenden Beispiel werden der private Schlüssel aus dem vorherigen Schritt (*privatekey.pem*) und die Signaturanforderung (*csr.pem*) verwendet, um ein öffentliches Zertifikat mit dem Namen zu erstellen*public.crt*, das tagelang gültig ist. *365*

```
$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
```

Behalten Sie den privaten Schlüssel und das öffentliche Zertifikat für eine spätere Nutzung. Sie können die Signierungsanforderung verwerfen. [Speichern Sie den privaten Schlüssel immer an einem sicheren Ort](https-storingprivatekeys.md) und vermeiden Sie es, ihn zu Ihrem Quellcode hinzuzufügen.

Zum Verwenden des Zertifikats mit der Windows Server-Plattform müssen Sie es in ein PFX-Format konvertieren. Verwenden Sie den folgenden Befehl zum Erstellen eines PFX-Zertifikats aus dem privaten Schlüssel und den öffentlichen Zertifikatsdateien:

```
$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
```

Wenn Sie ein Zertifikat haben, können Sie es für die Verwendung mit einem Load Balancer [in IAM hochladen](configuring-https-ssl-upload.md) oder [die Instances in Ihrer Umgebung konfigurieren, um HTTPS zu beenden](https-singleinstance.md).

# Hochladen eines Zertifikats in IAM
<a name="configuring-https-ssl-upload"></a>

Um Ihr Zertifikat mit dem Load Balancer Ihrer Elastic Beanstalk Beanstalk-Umgebung zu verwenden, laden Sie das Zertifikat und den privaten Schlüssel in AWS Identity and Access Management (IAM) hoch. Sie können ein in IAM gespeichertes Zertifikat mit Elastic Load Balancing Balancing-Load Balancern und CloudFront Amazon-Distributionen verwenden.

**Anmerkung**  
AWS Certificate Manager (ACM) ist das bevorzugte Tool für die Bereitstellung, Verwaltung und Bereitstellung Ihrer Serverzertifikate. Weitere Informationen zum Anfordern eines ACM-Zertifikats finden Sie unter [Zertifikat anfordern](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) im *AWS Certificate Manager -Benutzerhandbuch*. Weitere Informationen zum Importieren von Zertifikaten von Drittanbietern in ACM finden Sie unter [Importieren von Zertifikaten](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) im *AWS Certificate Manager -Benutzerhandbuch*. Verwenden Sie IAM nur dann, um ein Zertifikat hochzuladen, wenn ACM [in Ihrer Region nicht verfügbar](https://docs.aws.amazon.com/general/latest/gr/acm.html) ist. AWS 

Sie können das AWS Command Line Interface (AWS CLI) verwenden, um Ihr Zertifikat hochzuladen. Mit dem folgenden Befehl wird ein selbstsigniertes Zertifikat *https-cert.crt* mit einem privaten Schlüssel namens hochgeladen: *private-key.pem*

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://https-cert.crt --private-key file://private-key.pem
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "AS5YBEIONO2Q7CAIHKNGC",
        "ServerCertificateName": "elastic-beanstalk-x509",
        "Expiration": "2017-01-31T23:06:22Z",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:server-certificate/elastic-beanstalk-x509",
        "UploadDate": "2016-02-01T23:10:34.167Z"
    }
}
```

Das `file://` Präfix weist AWS CLI an, den Inhalt einer Datei in das aktuelle Verzeichnis zu laden. *elastic-beanstalk-x509*gibt den Namen an, unter dem das Zertifikat in IAM aufgerufen werden soll.

Wenn Sie ein Zertifikat von einer Zertifizierungsstelle erworben und eine Zertifikatskettendatei erhalten haben, laden Sie diese auch mit der `--certificate-chain`-Option hoch:

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-chain file://certificate-chain.pem --certificate-body file://https-cert.crt --private-key file://private-key.pem
```

Notieren Sie den Amazon-Ressourcennamen (ARN) für Ihr Zertifikat. Sie verwenden diesen, wenn Sie die Konfigurationseinstellungen Ihres Load Balancer für die Verwendung von HTTPS aktualisieren.

**Anmerkung**  
Ein Zertifikat in IAM hochgeladenes Zertifikat bleibt auch dann gespeichert, wenn es in keinem Load Balancer der Umgebung mehr verwendet wird. Es enthält sensible Daten. Wenn Sie das Zertifikat für keine Umgebung mehr benötigen, stellen Sie sicher, dass Sie es löschen. Weitere Informationen zum Löschen eines Zertifikats von IAM finden Sie unter [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Weitere Informationen über Serverzertifikate in IAM finden Sie unter [Arbeiten mit Serverzertifikaten](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) im *IAM-Benutzerhandbuch*.

# Sicheres Speichern von privaten Schlüsseln in Amazon S3
<a name="https-storingprivatekeys"></a>

Der private Schlüssel, den Sie zum Signieren des öffentlichen Zertifikats verwenden, ist geheim und sollte nicht an den Quellcode übergeben werden. Sie können vermeiden, dass private Schlüssel in Konfigurationsdateien gespeichert werden, indem Sie sie in Amazon S3 hochladen und Elastic Beanstalk so konfigurieren, dass die Datei während der Anwendungsbereitstellung aus Amazon S3 heruntergeladen wird.

Das folgende Beispiel veranschaulicht, wie Sie in den Abschnitten [Resources](environment-resources.md) und [files](customize-containers-ec2.md#linux-files) einer [Konfigurationsdatei](ebextensions.md) eine Datei mit einem privaten Schlüssel aus einem Amazon S3-Bucket herunterladen.

**Example .ebextensions/privatekey.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key
```

Ersetzen Sie den Bucket-Namen und die URL im Beispiel durch Ihre eigenen Angaben. Mit dem ersten Eintrag der Datei wird eine Authentifizierungsmethode mit dem Namen `S3Auth` zu den Metadaten der Auto Scaling-Gruppe für diese Umgebung hinzugefügt. Falls Sie ein benutzerdefiniertes [Instance-Profil](concepts-roles-instance.md) für die Umgebung konfiguriert haben, wird dieses verwendet. Andernfalls wird der Standardwert von `aws-elasticbeanstalk-ec2-role` übernommen. Das Instance-Standardprofil besitzt die Berechtigung zum Lesen der Speicher-Buckets von Elastic Beanstalk. Bei Verwendung eines anderen Buckets [fügen Sie Berechtigungen zum Instance-Profil hinzu](iam-instanceprofile.md#iam-instanceprofile-addperms).

Vom zweiten Eintrag wird die Authentifizierungsmethode `S3Auth` verwendet, um den privaten Schlüssel über die angegebene URL herunterzuladen und unter `/etc/pki/tls/certs/server.key` zu speichern. Der Proxy-Server kann dann den privaten Schlüssel an diesem Speicherort auslesen und [HTTPS-Verbindungen zur Instance beenden](https-singleinstance.md).

Das Instance-Profil, das den EC2 Instances Ihrer Umgebung zugewiesen ist, muss berechtigt sein, das Schlüsselobjekt aus dem angegebenen Bucket zu lesen. [Stellen Sie sicher, dass das Instance-Profil über die Berechtigung](iam-instanceprofile.md#iam-instanceprofile-verify) zum Lesen des Objekts in IAM verfügt und dass die Berechtigungen für den Bucket und das Objekt das Instance-Profil nicht ausschließen.

**So zeigen Sie die Berechtigungen eines Buckets an**

1. Öffnen Sie die [Amazon S3-Managementkonsole](https://console.aws.amazon.com/s3/home).

1. Wählen Sie einen Bucket aus.

1. Wählen Sie **Properties (Eigenschaften)** und dann **Permissions (Berechtigungen)** aus.

1. Vergewissern Sie sich, dass Ihr Konto für diesen Bucket berechtigt ist und Leseberechtigung hat.

1. Wenn eine Bucket-Richtlinie angefügt ist, wählen Sie **Bucket policy (Bucket-Richtlinie)** aus, um die dem Bucket zugewiesenen Berechtigungen anzuzeigen.