

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

# Certificati server
<a name="configuring-https.certificate"></a>

Questo argomento descrive i diversi tipi di certificati che è possibile utilizzare per configurare HTTPS e quando applicarli. Gli argomenti secondari di questa sezione forniscono istruzioni per creare il proprio certificato e come caricarlo.

**AWS Certificate Manager (ACM)**  
ACM è lo strumento preferito per il provisioning, la gestione e la distribuzione dei certificati del server. È possibile farlo a livello di codice o utilizzando. AWS CLI Con ACM puoi creare gratuitamente un certificato affidabile per i tuoi nomi di dominio.

 I certificati ACM possono essere utilizzati solo con sistemi di bilanciamento del AWS carico e CloudFront distribuzioni Amazon e ACM è disponibile solo in alcune regioni. AWS Per utilizzare un certificato ACM con Elastic Beanstalk, consulta [Configurazione della terminazione HTTPS sul sistema di bilanciamento del carico](configuring-https-elb.md). [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) 

**Nota**  
 Per un elenco delle regioni in cui è disponibile ACM, consulta [Endpoint e quote ACM](https://docs.aws.amazon.com/general/latest/gr/acm.html) nel. *Riferimenti generali di Amazon Web Services* 

Se ACM non è disponibile nella tua AWS regione, puoi caricare un certificato di terze parti o autofirmato e una chiave privata su (IAM). AWS Identity and Access Management Puoi utilizzare il AWS CLI per caricare il certificato. I certificati archiviati in IAM possono essere utilizzati con sistemi di bilanciamento del carico e CloudFront distribuzioni. Per ulteriori informazioni, consulta [Caricamento di un certificato in IAM](configuring-https-ssl-upload.md).

**Certificato di terze parti**  
Se ACM non è disponibile nella tua regione, puoi acquistare un certificato attendibile da una terza parte. Puoi utilizzare un certificato di terze parti per decrittografare il traffico HTTPS a livello di sistema di bilanciamento del carico e/o delle istanze back-end.

**Certificato autofirmato**  
Per i processi di sviluppo e test, puoi [creare e firmare un certificato](configuring-https-ssl.md) utilizzando strumenti open source. I certificati autofirmati sono gratuiti e semplici da creare, ma non possono essere utilizzati per la decrittografia front-end nei siti pubblici. Se tenti di utilizzare un certificato autofirmato per una connessione HTTPS a un client, il browser dell'utente mostra un messaggio di errore che indica che il sito Web non è sicuro. Puoi, tuttavia, utilizzare un certificato autofirmato per proteggere le connessioni back-end senza alcun problema.

# Creazione e firma di un certificato X509
<a name="configuring-https-ssl"></a>

Puoi creare un certificato X509 per la tua applicazione con `OpenSSL`. OpenSSL è una libreria open source standard che supporta un'ampia gamma di funzioni di crittografia, tra cui la creazione e la firma di certificati X509. Per ulteriori informazioni su OpenSSL, visita la pagina Web all'indirizzo [www.openssl.org](https://www.openssl.org/).

**Nota**  
È sufficiente creare un certificato in locale se si desidera [utilizzare HTTPS in un ambiente a istanza singola](https-singleinstance.md) o [eseguire nuovamente la crittografia al back-end](configuring-https-endtoend.md) con un certificato autofirmato. Se possiedi un nome di dominio, puoi creare un certificato AWS e utilizzarlo gratuitamente in un ambiente con bilanciamento del carico utilizzando AWS Certificate Manager (ACM). Per istruzioni, consulta la pagina relativa alla [richiesta di un certificato](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) nella *Guida per l'utente di AWS Certificate Manager *.

Esegui `openssl version` alla riga di comando per vedere se OpenSSL è già installato. In caso contrario, puoi compilare e installare il codice sorgente seguendo le istruzioni disponibili nell'[ GitHub archivio pubblico](https://github.com/openssl/openssl) o utilizzare il tuo gestore di pacchetti preferito. [OpenSSL è installato anche sulle immagini Linux di Elastic Beanstalk, quindi un'alternativa rapida è connettersi a EC2 un'istanza in un ambiente in esecuzione utilizzando il comando dell'EB CLI:](eb-cli3.md) **eb ssh**

```
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
```

È necessario creare una chiave privata RSA per creare la richiesta di firma del certificato (CSR). Per creare la chiave privata, utilizza il comando **openssl genrsa**:

```
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
```

*privatekey.pem*  
Il nome del file in cui desideri salvare la chiave privata. Di solito, il comando **openssl genrsa** stampa il contenuto della chiave privata sullo schermo, ma questo memorizza l'output in un file. Scegli un nome di file e memorizza il file in uno spazio sicuro, in modo che sia possibile recuperarlo in un secondo momento. Se perdi la chiave privata, non potrai più utilizzare il tuo certificato.

Un CSR è un file inviato a un'autorità di certificazione (CA) per richiedere un certificato server digitale. Per creare un CSR, utilizza il comando **openssl req**:

```
$ openssl req -new -key privatekey.pem -out csr.pem
You are about to be asked to enter information that will be incorporated 
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
```

Inserisci le informazioni richieste e premi **Enter (Invio)**. La tabella seguente descrive e mostra esempi per ogni campo:


****  

| Nome | Descrizione | Esempio | 
| --- | --- | --- | 
| Nome paese | L'abbreviazione ISO di due lettere per il tuo paese. | US = Stati Uniti | 
| Lo stato o la provincia | Il nome dello stato o della provincia in cui si trova la tua organizzazione. Questo nome non può essere abbreviato. | Washington | 
| Locality Name (Nome località) | Il nome della città in cui si trova la tua organizzazione. | Seattle | 
| Nome organizzazione | La denominazione legale completa della tua organizzazione. Non abbreviare il nome dell'organizzazione. | Example Corporation | 
| Unità organizzativa | Facoltativo, per informazioni aggiuntive sull'organizzazione. | Marketing | 
| Common Name (Nome comune) | Il nome di dominio completo del tuo sito Web. Deve corrispondere al nome di dominio che gli utenti vedono quando visitano il sito, in caso contrario verranno mostrati gli errori di certificato. | www.example.com | 
| Indirizzo e-mail | L'indirizzo e-mail dell'amministratore del sito. | someone@example.com | 

È possibile inviare la richiesta di firma a una terza parte per la firma o firmare personalmente per lo sviluppo e il test. I certificati autofirmati possono essere utilizzati anche per il backend HTTPS tra un sistema di bilanciamento del carico e le istanze. EC2 

Per firmare il certificato, utilizza il comando **openssl x509**. L'esempio seguente utilizza la chiave privata del passaggio precedente (*privatekey.pem*) e la richiesta di firma (*csr.pem*) per creare un certificato pubblico denominato valido per *public.crt* giorni. *365*

```
$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
```

Mantieni la chiave privata e il certificato pubblico per un utilizzo successivo. Puoi annullare la richiesta di firma. [Archivia sempre la chiave privata in un percorso sicuro](https-storingprivatekeys.md) ed evita di aggiungerla al tuo codice sorgente.

Per utilizzare il certificato con la piattaforma Windows Server, è necessario convertirlo in formato PFX. Utilizza il comando seguente per creare un certificato PFX dai file della chiave privata e del certificato pubblico:

```
$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
```

Ora che hai un certificato, puoi [caricarlo in IAM](configuring-https-ssl-upload.md) per utilizzarlo con un sistema di bilanciamento del carico oppure [configurare le istanze nel tuo ambiente per terminare HTTPS](https-singleinstance.md).

# Caricamento di un certificato in IAM
<a name="configuring-https-ssl-upload"></a>

Per utilizzare il certificato con il sistema di bilanciamento del carico dell'ambiente Elastic Beanstalk, carica il certificato e la chiave privata su (IAM). AWS Identity and Access Management Puoi utilizzare un certificato archiviato in IAM con i sistemi di bilanciamento del carico Elastic Load Balancing e le distribuzioni Amazon. CloudFront 

**Nota**  
AWS Certificate Manager (ACM) è lo strumento preferito per fornire, gestire e distribuire i certificati del server. Per ulteriori informazioni sulla richiesta di un certificato ACM, consulta [Richiesta di un certificato](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) nella *Guida per l'utente di AWS Certificate Manager *. Per ulteriori informazioni sull'importazione di certificati di terza parte in ACM, consulta [Importazione di certificati](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) nella *Guida per l'utente di AWS Certificate Manager *. Utilizza IAM per caricare un certificato solo se ACM non è [disponibile nella](https://docs.aws.amazon.com/general/latest/gr/acm.html) tua regione. AWS 

Puoi usare AWS Command Line Interface (AWS CLI) per caricare il tuo certificato. Il comando seguente carica un certificato autofirmato denominato *https-cert.crt* con una chiave privata denominata: *private-key.pem*

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://https-cert.crt --private-key file://private-key.pem
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "AS5YBEIONO2Q7CAIHKNGC",
        "ServerCertificateName": "elastic-beanstalk-x509",
        "Expiration": "2017-01-31T23:06:22Z",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:server-certificate/elastic-beanstalk-x509",
        "UploadDate": "2016-02-01T23:10:34.167Z"
    }
}
```

Il `file://` prefisso indica AWS CLI a di caricare il contenuto di un file nella directory corrente. *elastic-beanstalk-x509*specifica il nome per chiamare il certificato in IAM.

Se hai acquistato un certificato da un'autorità di certificazione e hai ricevuto un file della catena di certificati, carica anche questo file includendo l'opzione `--certificate-chain`:

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-chain file://certificate-chain.pem --certificate-body file://https-cert.crt --private-key file://private-key.pem
```

Annota l'Amazon Resource Name (ARN) per il certificato. Lo userai quando aggiorni le impostazioni di configurazione del sistema di bilanciamento del carico per l'uso di HTTPS.

**Nota**  
Un certificato caricato in IAM rimane archiviato anche quando non è più in uso in alcun sistema di bilanciamento del carico dell'ambiente. Il certificato contiene dati sensibili. Quando non è più necessario per nessun ambiente, assicurati di eliminarlo. Per informazioni dettagliate sull'eliminazione di un certificato da IAM, consulta [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Per ulteriori informazioni sui certificati server in IAM, consulta l'argomento relativo all'[utilizzo dei certificati server](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) nella *Guida per l'utente di IAM*.

# Archiviazione di chiavi private in modo sicuro in Amazon S3
<a name="https-storingprivatekeys"></a>

La chiave privata che usi per firmare i certificati pubblici è privata e non deve esserne eseguito il commit nel codice sorgente. Puoi evitare di archiviare le chiavi private nei file di configurazione caricandoli in Amazon S3 e configurando Elastic Beanstalk in modo che scarichi il file da Amazon S3 durante la distribuzione dell'applicazione.

L'esempio seguente mostra le sezioni [Resources](environment-resources.md) e [files](customize-containers-ec2.md#linux-files) di un [file di configurazione](ebextensions.md) che scarica un file di chiavi private da un bucket Amazon S3.

**Example .ebextensions/privatekey.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key
```

Sostituisci il nome del bucket e l'URL dell'esempio con quelli personalizzati. La prima voce di questo file aggiunge un metodo di autenticazione denominato `S3Auth` ai metadati del gruppo Auto Scaling dell'ambiente. Se hai configurato un [profilo di istanza](concepts-roles-instance.md) personalizzato per il tuo ambiente, verrà utilizzato. In caso contrario, viene applicato il valore predefinito `aws-elasticbeanstalk-ec2-role`. Il profilo di istanza predefinito è dotato dell'autorizzazione di leggere dal bucket di storage di Elastic Beanstalk. Se utilizzi un altro bucket, [aggiungi le autorizzazioni al profilo dell'istanza](iam-instanceprofile.md#iam-instanceprofile-addperms).

La seconda voce usa il metodo di autenticazione `S3Auth` per scaricare la chiave privata dall'URL specificato e salvarla `/etc/pki/tls/certs/server.key`. Il server proxy è in grado di leggere la chiave privata da questa posizione per [terminare le connessioni HTTPS presso l'istanza](https-singleinstance.md).

Il profilo dell'istanza assegnato alle EC2 istanze del tuo ambiente deve avere l'autorizzazione a leggere l'oggetto chiave dal bucket specificato. [Verifica che il profilo dell'istanza abbia l'autorizzazione](iam-instanceprofile.md#iam-instanceprofile-verify) per leggere l'oggetto in IAM e che le autorizzazioni del bucket e dell'oggetto non impediscano l'accesso al profilo dell'istanza.

**Per visualizzare le autorizzazioni di un bucket**

1. Apri la [console di gestione Amazon S3](https://console.aws.amazon.com/s3/home).

1. Scegli un bucket.

1. Scegli **Properties (Proprietà)**, quindi **Permissions (Autorizzazioni)**.

1. Verifica che il tuo account sia un assegnatario per il bucket con autorizzazione di lettura.

1. Se una policy del bucket è collegata, seleziona **Bucket policy (Policy bucket)** per visualizzare le autorizzazioni assegnate al bucket.