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.
Wird HTTPS auf EC2 Instanzen beendet, auf denen Java SE ausgeführt wird
Für Java SE-Containertypen aktivieren Sie HTTPS mit einer .ebextensions-Konfigurationsdatei und einer Nginx-Konfigurationsdatei, die den zu verwendenden Nginx-Server konfiguriert. HTTPS
Alle AL2 AL2 023/ -Plattformen unterstützen eine einheitliche Proxykonfigurationsfunktion. Weitere Informationen zur Konfiguration des Proxyservers auf Ihren Plattformversionen, auf denen AL2 AL2 023/ ausgeführt wird, finden Sie unter. Reverse-Proxy-Konfiguration
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
certificate file contents
mit dem Inhalt Ihres Zertifikats.Anmerkung
YAMLsetzt auf eine gleichbleibende Einrückung. 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
private key contents
mit dem Inhalt des privaten Schlüssels, der zur Erstellung der Zertifikatsanforderung oder des selbstsignierten Zertifikats verwendet wurde.
-
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: "service nginx restart"
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.
Binden Sie folgendes Snippet in eine .conf
-Datei ein und platzieren Sie diese im Verzeichnis .ebextensions/nginx/conf.d/
des Quell-Bundles (z. B. .ebextensions/nginx/conf.d/https.conf
). Ersetzen app_port
mit der Portnummer, auf der Ihre Anwendung lauscht. In diesem Beispiel wird der Nginx-Server so konfiguriert, dass er Port 443 abhört und verwendet. SSL Weitere Informationen zu diesen Konfigurationsdateien für die Java SE-Plattform finden Sie unter Konfigurieren des Proxy-Server.
Beispiel . ebextensions/nginx/conf.d/https.conf
# 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;
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. Die folgende Konfigurationsdatei ruft mithilfe einer AWS CloudFormation Funktion die ID der Sicherheitsgruppe ab und fügt ihr eine Regel hinzu.
Beispiel .ebeextensions/ .config https-instance-single
Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 443
FromPort: 443
CidrIp: 0.0.0.0/0