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.
HTTPS auf Amazon EC2-Instances mit .NET Core unter Linux terminieren
Sie verwenden für .NT Core on Linux-Containertypen eine .ebextensions
-Konfigurationsdatei, um HTTPS zu aktivieren, und eine nginx-Konfigurationsdatei, um den nginx-Server für die Verwendung von HTTPS zu konfigurieren.
Fügen Sie der Konfigurationsdatei das folgende Snippet hinzu, folgen Sie den Anweisungen, um die Platzhalter für Zertifikat und privaten Schlüssel zu ersetzen, und speichern Sie dies im Verzeichnis .ebextensions
. Von der Konfigurationsdatei werden folgende Schritte ausgeführt:
-
Der Schlüssel
files
generiert folgende Dateien auf der Instance:/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.
-
Mit dem Schlüssel
container_commands
wird der nginx-Server nach Abschluss der Konfiguration neu gestartet, damit der Server die nginx-Konfigurationsdatei lädt.
Beispiel .ebextensions/https-instance.config
files:
/etc/pki/tls/certs/server.crt:
content: |
-----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE-----
/etc/pki/tls/certs/server.key:
content: |
-----BEGIN RSA PRIVATE KEY-----
private key contents # See note below.
-----END RSA PRIVATE KEY-----
container_commands:
01restart_nginx:
command: "systemctl restart nginx"
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.
Fügen Sie Folgendes in eine Datei mit der Erweiterung .conf
im Verzeichnis .platform/nginx/conf.d/
Ihres Quellpakets ein (z. B. .platform/nginx/conf.d/https.conf
). Ersetzen Sie app_port
durch die Portnummer, die von der Anwendung überwacht wird. In diesem Beispiel wird der nginx-Server zur Überwachung von Port 443 mit SSL konfiguriert. Weitere Informationen zu diesen Konfigurationsdateien auf der .NET Core on Linux-Plattform finden Sie unter Konfigurieren des Proxy-Server.
Beispiel .platform/nginx/conf.d/https.conf
# HTTPS server
server {
listen 443 ssl;
server_name localhost;
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;
location / {
proxy_pass http://localhost:app_port
;
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;
}
}
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.