Terminazione di HTTPS su istanze EC2 che eseguono Java SE - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Terminazione di HTTPS su istanze EC2 che eseguono Java SE

Per i tipi di container Java SE, devi attivare HTTPS con un file di configurazione .ebextensions e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

Tutte le piattaforme AL2023/AL2 supportano una funzionalità di configurazione proxy uniforme. Per maggiori informazioni sulla configurazione del server proxy nelle versioni della piattaforma che eseguono AL2023/AL2, espandi la sezione Configurazione proxy inverso in Estensione delle piattaforme Elastic Beanstalk Linux.

Aggiungi il seguente frammento al file di configurazione, sostituendo i segnaposti di certificato e chiave privata come indicato, e salvalo nella directory .ebextensions. Il file di configurazione esegue le seguenti attività:

  • La chiave files crea i seguenti file sull'istanza:

    /etc/pki/tls/certs/server.crt

    Crea il file di certificato sull'istanza. Sostituisci i contenuti del file del certificato con i contenuti del tuo certificato.

    Nota

    YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

    Se disponi di certificati intermedi, includili in server.crt dopo il certificato del sito.

    -----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

    Crea il file della chiave privata sull'istanza. Sostituisci i contenuti della chiave privata con i contenuti della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.

  • La chiave container_commands riavvia il server nginx dopo che tutto è configurato di modo che il server carichi il file di configurazione nginx.

Esempio .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"
Nota

Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consultare Archiviazione di chiavi private in modo sicuro in Amazon S3.

Inserisci quanto segue in un file con estensione .conf nella directory .ebextensions/nginx/conf.d/ del bundle di origine (ad esempio, .ebextensions/nginx/conf.d/https.conf). Sostituisci porta_app con il numero di porta su cui l'applicazione è in ascolto. Questo esempio configura il server nginx per l'ascolto sulla porta 443 tramite SSL. Per ulteriori informazioni su questi file di configurazione sulla piattaforma Java SE, consulta Configurazione del proxy inverso.

Esempio .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 un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una funzione AWS CloudFormation a cui aggiunge una regola.

Esempio .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

Per gli ambienti con bilanciamento del carico, configura il sistema di bilanciamento del carico affinché trasferisca il traffico protetto senza modifiche o esegua la decrittografia e poi nuovamente la crittografia per una crittografia end-to-end.