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.
Beenden von HTTPS auf EC2-Instances, auf denen Node.js ausgeführt wird
In der folgenden Beispielkonfigurationsdatei wird die nginx-Standardkonfiguration erweitert, sodass Port 443 überwacht und SSL/TLS-Verbindungen mit öffentlichem Zertifikat und privatem Schlüssel beendet werden.
Wenn Sie Ihre Umgebung für erweiterte Zustandsberichte konfiguriert haben, müssen Sie nginx für die Generierung von Zugriffsprotokollen konfigurieren. Hierzu muss die Auskommentierung des Zeilenblocks unter dem Kommentar mit dem Text # For enhanced health...
durch Entfernen der führenden #
-Zeichen erfolgen.
Beispiel .ebextensions/https-instance.config
files:
/etc/nginx/conf.d/https.conf:
mode: "000644"
owner: root
group: root
content: |
# HTTPS server
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate /etc/pki/tls/certs/server.crt;
ssl_certificate_key /etc/pki/tls/certs/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# For enhanced health reporting support, uncomment this block:
#if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
# set $year $1;
# set $month $2;
# set $day $3;
# set $hour $4;
#}
#access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
#access_log /var/log/nginx/access.log main;
location / {
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
/etc/pki/tls/certs/server.crt:
mode: "000400"
owner: root
group: root
content: |
-----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE-----
/etc/pki/tls/certs/server.key:
mode: "000400"
owner: root
group: root
content: |
-----BEGIN RSA PRIVATE KEY-----
private key contents
# See note below.
-----END RSA PRIVATE KEY-----
Der Schlüssel files
generiert folgende Dateien auf der Instance:
/etc/nginx/conf.d/https.conf
-
Konfiguriert den nginx-Server. Diese Datei wird mit dem Start des nginx-Service geladen.
/etc/pki/tls/certs/server.crt
-
Damit wird die Zertifikatdatei auf der Instance erstellt. Ersetzen Sie den
Inhalt der Zertifikatdatei
durch den Inhalt Ihres Zertifikats.Anmerkung
Für YAML sind konsistente Einrückungen erforderlich. Wählen Sie die entsprechende Einrückungsebene aus, wenn Sie Inhalte in einer Beispielkonfigurationsdatei ersetzen, und stellen Sie sicher, dass Ihr Texteditor Leerzeichen statt Tabulatorzeichen zum Einrücken verwendet.
Wenn Zwischenzertifikate vorhanden sind, nehmen Sie sie nach Ihrem Site-Zertifikat in
server.crt
auf.-----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
first intermediate certificate
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----second intermediate certificate
-----END CERTIFICATE----- /etc/pki/tls/certs/server.key
-
Damit wird die private Schlüsseldatei auf der Instance erstellt. Ersetzen Sie den
Inhalt des privaten Schlüssels
durch den Inhalt des privaten Schlüssels, mit dem Sie die Zertifikatanforderung oder das selbstsignierte Zertifikat erstellt haben.
Anmerkung
Führen Sie möglichst keinen Commit für eine Konfigurationsdatei, die Ihren privaten Schlüssel enthält, an die Quellüberwachung durch. Nachdem Sie die Konfiguration getestet haben, speichern Sie Ihren privaten Schlüssel in Amazon S3 und ändern Sie die Konfiguration, um sie während der Bereitstellung herunterzuladen. Detaillierte Anweisungen finden Sie unter Sicheres Speichern von privaten Schlüsseln in Amazon S3.
In einer einzelnen Instance-Umgebung müssen Sie außerdem die Sicherheitsgruppe der Instance ändern, damit Datenverkehr über Port 443 zugelassen wird. Mit der folgenden Konfigurationsdatei wird die ID der Sicherheitsgruppe mit einer AWS CloudFormation-Funktion abgerufen und eine Regel hinzugefügt.
Beispiel .ebextensions/https-instance-single.config
Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 443
FromPort: 443
CidrIp: 0.0.0.0/0
Bei einer Umgebung mit Load Balancer konfigurieren Sie den Load Balancer entweder so, dass sicherer Datenverkehr unangetastet durchgelassen wird, oder für Verschlüsseln und erneutes Entschlüsseln mit End-to-End-Verschlüsselung.