

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

# Configurazione della terminazione HTTPS sull'istanza
<a name="https-singleinstance"></a>

Puoi utilizzare i [file di configurazione](ebextensions.md) per configurare il server proxy che trasferisce il traffico verso la tua applicazione in modo da terminare le connessioni HTTPS. Questa funzione è utile se desideri utilizzare HTTPS con un ambiente di istanza singola oppure se configuri il sistema di bilanciamento del carico per inoltrare il traffico senza decrittografarlo.

Per abilitare HTTPS, devi consentire il traffico in entrata sulla porta 443 verso l' EC2 istanza su cui è in esecuzione l'applicazione Elastic Beanstalk. A tale scopo, utilizza la `Resources` chiave nel file di configurazione per aggiungere una regola per la porta 443 alle regole di ingresso per il gruppo di sicurezza del gruppo. AWSEBSecurity

Il seguente frammento aggiunge una regola di ingresso al gruppo di sicurezza `AWSEBSecurityGroup` che apre la porta 443 a tutto il traffico per un ambiente di istanza singola:

**`.ebextensions/https-instance-securitygroup.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
```

In un ambiente con bilanciamento del carico con un [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) predefinito, puoi modificare questa policy per accettare solo il traffico proveniente dal sistema di bilanciamento del carico. Consulta [Configurazione della end-to-end crittografia in un ambiente Elastic Beanstalk con carico bilanciato](configuring-https-endtoend.md) per un esempio.

**Topics**
+ [Terminazione di HTTPS su istanze EC2 in cui è in esecuzione Docker](https-singleinstance-docker.md)
+ [Terminazione di HTTPS sulle EC2 istanze che eseguono Go](https-singleinstance-go.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Java SE](https-singleinstance-java.md)
+ [Terminazione di HTTPS nelle istanze EC2 che eseguono Node.js](https-singleinstance-nodejs.md)
+ [Terminazione di HTTPS su EC2 istanze che eseguono PHP](https-singleinstance-php.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Python](https-singleinstance-python.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Ruby](https-singleinstance-ruby.md)
+ [Terminazione di HTTPS su istanze EC2 che eseguono Tomcat](https-singleinstance-tomcat.md)
+ [Terminazione di HTTPS su istanze Amazon EC2 che eseguono .NET Core su Linux](https-singleinstance-dotnet-linux.md)
+ [Terminazione di HTTPS su EC2 istanze Amazon che eseguono.NET](SSLNET.SingleInstance.md)

# Terminazione di HTTPS su istanze EC2 in cui è in esecuzione Docker
<a name="https-singleinstance-docker"></a>

Per i container Docker, è possibile utilizzare un [file di configurazione](ebextensions.md) per abilitare HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .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;
        
        location / {
          proxy_pass http://docker;
          proxy_http_version 1.1;
          
          proxy_set_header Connection "";
          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-----
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS sulle EC2 istanze che eseguono Go
<a name="https-singleinstance-go"></a>

Per i tipi di container Go, devi attivare HTTPS con un [file di configurazione](ebextensions.md) e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

Aggiungi il seguente frammento al file di configurazione, sostituendo il certificato e il materiale della chiave privata come indicato, e salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `Resources` attiva la porta 443 sul gruppo di sicurezza utilizzato dall'istanza dell'ambiente. 
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. *certificate file contents*Sostituiscilo con il contenuto del tuo certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .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-----
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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`). *app\$1port*Sostituiscilo 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 Go, consulta [Configurazione del server proxy](go-nginx.md).

**Example . 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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Java SE
<a name="https-singleinstance-java"></a>

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

Tutte le AL2 piattaforme AL2023/supportano una funzionalità di configurazione proxy uniforme. Per ulteriori informazioni sulla configurazione del server proxy sulle versioni della piattaforma che eseguono AL2023/AL2, consulta[Configurazione del proxy inverso](platforms-linux-extend.proxy.md). 

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. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .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-----
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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`). *app\$1port*Sostituiscilo 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 server proxy](java-se-nginx.md).

**Example . 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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS nelle istanze EC2 che eseguono Node.js
<a name="https-singleinstance-nodejs"></a>

Il seguente file di configurazione di esempio [estende la configurazione nginx predefinita](nodejs-platform-proxy.md) per ascoltare sulla porta 443 e SSL/TLS terminare le connessioni con un certificato pubblico e una chiave privata.

Se hai configurato l'ambiente per il [reporting sullo stato migliorato](health-enhanced.md), è necessario configurare nginx per generare i log di accesso. A tale scopo, rimuovi i commenti dal blocco di linee sotto il commento la cui dicitura è `# For enhanced health...` rimuovendo i caratteri iniziali `#`.

**Example .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-----
```

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

`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.

`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del tuo certificato.  
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. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su EC2 istanze che eseguono PHP
<a name="https-singleinstance-php"></a>

Per i tipi di container PHP, devi usare un [file di configurazione](ebextensions.md) per abilitare Apache HTTP Server per l'utilizzo di HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine.

Il file di configurazione esegue le seguenti attività:
+ La chiave `packages` utilizza yum per installare `mod24_ssl`.
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/httpd/conf.d/ssl.conf`  
Configura il server Apache. Questo file viene caricato all'avvio del servizio Apache.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. *certificate file contents*Sostituiscilo con il contenuto del tuo certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.

**Example .ebextensions/https-instance.config**  

```
packages:
  yum:
    mod24_ssl : []

files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule ssl_module modules/mod_ssl.so
      Listen 443
      <VirtualHost *:443>
        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>

        SSLEngine             on
        SSLCertificateFile    "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol           All -SSLv2 -SSLv3
        SSLHonorCipherOrder   On
        SSLSessionTickets     Off
        
        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
        Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        
        ProxyPass / http://localhost:80/ retry=0
        ProxyPassReverse / http://localhost:80/
        ProxyPreserveHost on
        RequestHeader set X-Forwarded-Proto "https" early
        
      </VirtualHost>
      
  /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-----
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Python
<a name="https-singleinstance-python"></a>

Per i tipi di container Python che utilizzano Apache HTTP Server con l'interfaccia WSGI (Web Server Gateway Interface), devi utilizzare un [file di configurazione](ebextensions.md) per consentire ad Apache HTTP Server di utilizzare HTTPS.

Aggiungi il seguente frammento al [file di configurazione](ebextensions.md), sostituendo i segnaposto di certificato e chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `packages` utilizza yum per installare `mod_ssl`.
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/httpd/conf.d/ssl.conf`  
Configura il server Apache. Se la tua applicazione non è denominata `application.py`, sostituisci il testo evidenziato nel valore per `WSGIScriptAlias` con il percorso locale alla tua applicazione. Ad esempio, un'applicazione django può essere in `django/wsgi.py`. La posizione deve corrispondere al valore dell'opzione `WSGIPath` impostata per il tuo ambiente.  
A seconda dei requisiti dell'applicazione, potrebbe essere necessario aggiungere anche altre directory al parametro **python-path**.   
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 
+ La chiave `container_commands` interrompe il servizio httpd dopo che tutto è stato configurato in modo che il servizio utilizzi il nuovo certificato e il nuovo file `https.conf`.

**Nota**  
L'esempio funziona solo in ambienti che utilizzano la piattaforma [Python](create-deploy-python-container.md).

**Example .ebextensions/https-instance.config**  

```
packages:
  yum:
    mod_ssl: []
    
files:
  /etc/httpd/conf.d/ssl.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      LoadModule wsgi_module modules/mod_wsgi.so
      WSGIPythonHome /var/app/venv/staging-LQM1lest
      WSGISocketPrefix run/wsgi
      WSGIRestrictEmbedded On
      Listen 443
      <VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile "/etc/pki/tls/certs/server.crt"
        SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
        
        Alias /static/ /var/app/current/static/
        <Directory /var/app/current/static>
        Order allow,deny
        Allow from all
        </Directory>
        
        WSGIScriptAlias / /var/app/current/application.py
        
        <Directory /var/app/current>
        Require all granted
        </Directory>
        
        WSGIDaemonProcess wsgi-ssl processes=1 threads=15 display-name=%{GROUP} \
          python-path=/var/app/current \
          python-home=/var/app/venv/staging-LQM1lest \
          home=/var/app/current \
          user=webapp \
          group=webapp
        WSGIProcessGroup wsgi-ssl
        
      </VirtualHost>
      
  /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-----
      
container_commands:
  01killhttpd:
    command: "killall httpd"
  02waitforhttpddeath:
    command: "sleep 3"
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

**Nota per gli ambienti Amazon Linux 2023**  
Su Amazon Linux 2023, `mod_wsgi` deve essere installato separatamente in quanto non è disponibile negli archivi dei pacchetti. Per le istruzioni di installazione, vedi [mod\$1wsgi su PyPI](https://pypi.org/project/mod-wsgi/).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Ruby
<a name="https-singleinstance-ruby"></a>

Per i tipi di container Ruby, il modo in cui abiliti HTTPS dipende dal tipo di server di applicazioni utilizzato.

**Topics**
+ [Configurare HTTPS per Ruby con Puma](#Puma)
+ [Configurare HTTPS per Ruby con Passenger](#Passenger)

## Configurare HTTPS per Ruby con Puma
<a name="Puma"></a>

Per i tipi di container Ruby che utilizzano Puma come server di applicazioni, utilizza un [file di configurazione](ebextensions.md) per abilitare il protocollo HTTPS.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. Il file di configurazione esegue le seguenti attività:
+ La chiave `files` crea i seguenti file sull'istanza:  
`/etc/nginx/conf.d/https.conf`  
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.  
`/etc/pki/tls/certs/server.crt`  
Crea il file di certificato sull'istanza. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .ebextensions/https-instance.config**  

```
files:
  /etc/nginx/conf.d/https.conf:
    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;
          
          location / {
              proxy_pass  http://my_app;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }

          location /assets {
            alias /var/app/current/public/assets;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }

          location /public {
            alias /var/app/current/public;
            gzip_static on;
            gzip on;
            expires max;
            add_header Cache-Control public;
          }
      }

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

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

## Configurare HTTPS per Ruby con Passenger
<a name="Passenger"></a>

Per i tipi di container Ruby che utilizzano Passenger come server di applicazioni, utilizza un file di configurazione e un file JSON per abilitare il protocollo HTTPS.

**Per configurare HTTPS per Ruby con Passenger**

1. Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. 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. Sostituiscilo con il contenuto del certificato. *certificate file contents*  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.   
**Example Frammento .Ebextensions per la configurazione di HTTPS per Ruby con Passenger**  

   ```
   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-----
   ```
**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

1. Crea un file di testo e aggiungi il seguente JSON al file. Salvalo nella directory principale del bundle di origine con il nome `passenger-standalone.json`. Questo file JSON configura Passenger per l'utilizzo di HTTPS.
**Importante**  
Questo file JSON non deve contenere un contrassegno ordine di byte (BOM, Byte Order Mark). In caso contrario, la libreria JSON di Passenger non leggerà il file correttamente e il servizio Passenger non verrà avviato.  
**Example passenger-standalone.json**  

   ```
   {
     "ssl" : true,
     "ssl_port" : 443,
     "ssl_certificate" : "/etc/pki/tls/certs/server.crt",
     "ssl_certificate_key" : "/etc/pki/tls/certs/server.key"
   }
   ```

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze EC2 che eseguono Tomcat
<a name="https-singleinstance-tomcat"></a>

Per i tipi di container Tomcat, utilizza un [file di configurazione](ebextensions.md) per autorizzare Apache HTTP Server a utilizzare il protocollo HTTPS quando svolge la funzione di proxy inverso per Tomcat.

Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory `.ebextensions` del bundle di origine. 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. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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.  
`/etc/pki/tls/certs/server.key`  
Crea il file della chiave privata sull'istanza. Sostituiscilo *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.   
`/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh`  
Crea uno script hook post-distribuzione per riavviare il servizio httpd.

**Example .ebextensions/https-instance.config**  

```
files:
  /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-----

  /opt/elasticbeanstalk/hooks/appdeploy/post/99_start_httpd.sh:
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      sudo service httpd restart
```

È inoltre necessario configurare il server proxy dell'ambiente affinché ascolti la porta 443. La seguente configurazione Apache 2.4 aggiunge un listener sulla porta 443. Per ulteriori informazioni, consulta [Configurazione del server proxy](java-tomcat-proxy.md).

**Example . ebextensions/httpd/conf.d/ssl.conf**  

```
Listen 443
<VirtualHost *:443> 
  ServerName server-name
  SSLEngine on 
  SSLCertificateFile "/etc/pki/tls/certs/server.crt" 
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key" 

  <Proxy *> 
    Require all granted 
  </Proxy> 
  ProxyPass / http://localhost:8080/ retry=0 
  ProxyPassReverse / http://localhost:8080/ 
  ProxyPreserveHost on 

  ErrorLog /var/log/httpd/elasticbeanstalk-ssl-error_log 

</VirtualHost>
```

Il fornitore del certificato può includere certificati intermedi che puoi installare per migliorare la compatibilità con i client mobili. Configura Apache con il bundle di un'autorità di certificazione (CA) intermedia aggiungendo il seguente file di configurazione SSL (vedi [Estensione e sovrascrittura della configurazione predefinita di Apache — Amazon Linux AMI () AL1](java-tomcat-proxy.md#java-tomcat-proxy-apache) per la posizione):
+ Nei contenuti del file `ssl.conf` specifica il file della catena:

  ```
  SSLCertificateKeyFile "/etc/pki/tls/certs/server.key"
  SSLCertificateChainFile "/etc/pki/tls/certs/gd_bundle.crt"
  SSLCipherSuite        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  ```
+ Aggiungi una nuova voce alla chiave `files` con i contenuti dei certificati intermedi:

  ```
  files:
    /etc/pki/tls/certs/gd_bundle.crt:
      mode: "000400"
      owner: root
      group: root
      content: |
        -----BEGIN CERTIFICATE-----
        First intermediate certificate
        -----END CERTIFICATE-----
        -----BEGIN CERTIFICATE-----
        Second intermediate certificate
        -----END CERTIFICATE-----
  ```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su istanze Amazon EC2 che eseguono .NET Core su Linux
<a name="https-singleinstance-dotnet-linux"></a>

Per i tipi di container .NET Core su Linux devi abilitare HTTPS con un [file di configurazione](ebextensions.md) `.ebextensions` e un file di configurazione nginx che configura il server nginx per l'utilizzo di HTTPS.

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. Sostituiscilo *certificate file contents* con il contenuto del certificato.  
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 *private key contents* con il contenuto della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato. 

**Example .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-----
```

**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, consulta [Archiviazione di chiavi private in modo sicuro in Amazon S3](https-storingprivatekeys.md).

Inserisci quanto segue in un file con estensione `.conf` nella directory `.platform/nginx/conf.d/` del bundle di origine (ad esempio, `.platform/nginx/conf.d/https.conf`). *app\$1port*Sostituiscilo 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 .NET Core su Linux, consulta [Configurazione del server proxy](dotnet-linux-platform-nginx.md).

**Example . 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 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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end

# Terminazione di HTTPS su EC2 istanze Amazon che eseguono.NET
<a name="SSLNET.SingleInstance"></a>

Il seguente [file di configurazione](ebextensions.md) crea ed esegue uno PowerShell script di Windows che esegue le seguenti attività:
+ Verifica la presenza di un'associazione di certificati HTTPS esistente alla porta 443.
+ Ottiene il [certificato PFX](configuring-https-ssl.md) da un bucket Amazon S3.
**Nota**  
Aggiungi una `AmazonS3ReadOnlyAccess` policy per accedere `aws-elasticbeanstalk-ec2-role` al certificato SSL nel bucket Amazon S3.
+ Ottiene la password da. Gestione dei segreti AWS
**Nota**  
Aggiunge un'istruzione `aws-elasticbeanstalk-ec2-role` che consenta l'`secretsmanager:GetSecretValue`azione relativa al segreto che contiene la password del certificato
+ Installa il certificato.
+ Associa il certificato alla porta 443.
**Nota**  
Per rimuovere gli endpoint HTTP (porta 80), includi il comando `Remove-WebBinding` nella sezione **Rimuovi associazione HTTP** dell'esempio.

**Example .ebextensions/ .config https-instance-dotnet**  

```
files:
  "C:\\certs\\install-cert.ps1":
    content: |
      import-module webadministration
      ## Settings - replace the following values with your own
      $bucket = "amzn-s3-demo-bucket"  ## S3 bucket name
      $certkey = "example.com.pfx"    ## S3 object key for your PFX certificate
      $secretname = "example_secret"  ## Gestione dei segreti AWS name for a secret that contains the certificate's password
      ##

      # Set variables
      $certfile = "C:\cert.pfx"
      $pwd = Get-SECSecretValue -SecretId $secretname | select -expand SecretString

      # Clean up existing binding
      if ( Get-WebBinding "Default Web Site" -Port 443 ) {
        Echo "Removing WebBinding"
        Remove-WebBinding -Name "Default Web Site" -BindingInformation *:443:
      }
      if ( Get-Item -path IIS:\SslBindings\0.0.0.0!443 ) {
        Echo "Deregistering WebBinding from IIS"
        Remove-Item -path IIS:\SslBindings\0.0.0.0!443
      }

      # Download certificate from S3
      Read-S3Object -BucketName $bucket -Key $certkey -File $certfile
      
      # Install certificate
      Echo "Installing cert..."
      $securepwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
      $cert = Import-PfxCertificate -FilePath $certfile cert:\localMachine\my -Password $securepwd
      
      # Create site binding
      Echo "Creating and registering WebBinding"
      New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
      New-Item -path IIS:\SslBindings\0.0.0.0!443 -value $cert -Force
      
      ## Remove the HTTP binding
      ## (optional) Uncomment the following line to unbind port 80
      # Remove-WebBinding -Name "Default Web Site" -BindingInformation *:80:
      ##
      
      # Update firewall
      netsh advfirewall firewall add rule name="Open port 443" protocol=TCP localport=443 action=allow dir=OUT

commands:
  00_install_ssl:
    command: powershell -NoProfile -ExecutionPolicy Bypass -file C:\\certs\\install-cert.ps1
```

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 CloudFormation [funzione](ebextensions-functions.md) e vi aggiunge una regola.

**Example .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 un ambiente con bilanciamento del carico, è possibile configurare il sistema di bilanciamento del carico in modo da far [passare il traffico sicuro](https-tcp-passthrough.md) in modo inalterato oppure decriptarlo e ricrittografarlo per la crittografia.](configuring-https-endtoend.md) end-to-end