

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

# Uso di SSL
<a name="workingsecurity-ssl"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Per utilizzare SSL con l'applicazione, è necessario prima ottenere un certificato server digitale da una Certificate Authority (CA). Per semplicità, questa procedura guidata crea un certificato poi lo autofirma. I certificati autofirmati sono utili per scopi di formazione ed esecuzione di test, ma è necessario utilizzare sempre un certificato firmato da una CA per gli stack di produzione. 

In questa procedura guidata, si eseguiranno le operazioni seguenti: 

1. Installare e configurare OpenSSL

1. Crea una chiave privata.

1. Creare una richiesta di firma del certificato.

1. Generare un certificato autofirmato.

1. Modificare l'applicazione con le informazioni del certificato. 

**Importante**  
[Se la tua applicazione utilizza SSL, ti consigliamo di disabilitarlo SSLv3, se possibile, nei livelli del server delle applicazioni per risolvere le vulnerabilità descritte in CVE-2014-3566.](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-3566) Se lo stack include un livello Ganglia, è necessario disabilitare SSL v3 anche per quel livello. I dettagli dipendono dal livello specifico; per ulteriori informazioni, consulta quanto segue.  
[Java App Server OpsWorks Stacks Layer](layers-java.md)
[Node.js App Server OpsWorks Stacks Layer](workinglayers-node.md)
[PHP App Server OpsWorks Stacks Layer](workinglayers-php.md)
[Rails OpsWorks App Server Stacks Layer](workinglayers-rails.md)
[Static Web Server OpsWorks Stacks Layer](workinglayers-static.md)
[Ganglia Layer](workinglayers-ganglia.md)

**Topics**
+ [Passaggio 1: installare e configurare OpenSSL](#w2ab1c14c57c29c15)
+ [Passaggio 2: creare una chiave privata](#w2ab1c14c57c29c17)
+ [Passaggio 3: creare una richiesta di firma del certificato](#w2ab1c14c57c29c19)
+ [Passaggio 4: inviare il CSR alla Certificate Authority](#w2ab1c14c57c29c21)
+ [Passaggio 5: modificare la app](#w2ab1c14c57c29c23)

## Passaggio 1: installare e configurare OpenSSL
<a name="w2ab1c14c57c29c15"></a>

La creazione e il caricamento dei certificati server richiede uno strumento che supporta i protocolli SSL e TLS. OpenSSL è uno strumento open-source che fornisce le funzioni di crittografia di base necessarie per creare un token RSA e firmarlo con la chiave privata.

 La procedura seguente presuppone che il computer non disponga già di OpenSSL installato. 

**Per installare OpenSSL su Linux e Unix**

1. Andare su [OpenSSL: Source, Tarballs (OpenSSL: origine, tarball)](https://www.openssl.org/source/).

1. Scaricare l'origine più recente.

1. Creare il pacchetto.

**Per installare OpenSSL in ambiente Windows**

1. [Se il Microsoft Visual C\$1\$1 2008 Redistributable Package non è già installato sul sistema, scarica il pacchetto.](https://www.microsoft.com/en-us/download/details.aspx?id=11895)

1. Eseguire il programma di installazione e seguire le istruzioni fornite da Microsoft Visual C\$1\$1 2008 Redistributable Setup Wizard per installare il ridistribuibile.

1. Andare su [OpenSSL: Binary Distributions (OpenSSL: distribuzione binaria)](https://www.openssl.org/community/binaries.html), fare clic sulla versione appropriata dei file binari OpenSSL per l'ambiente e salvare il programma di installazione in locale.

1. Eseguire il programma di installazione e seguire le istruzioni in **OpenSSL Setup Wizard (Procedura guidata di installazione OpenSSL)** per installare il file binari. 

Creare una variabile di ambiente che punti al punto di installazione OpenSSL attraverso l'apertura di un terminale o di una finestra di comando e l'utilizzo delle seguenti righe di comando. 
+ Su Linux e Unix

  ```
  export OpenSSL_HOME=path_to_your_OpenSSL_installation
  ```
+ Su Windows

  ```
  set OpenSSL_HOME=path_to_your_OpenSSL_installation 
  ```

Aggiungere la variabile di percorso dei file binari OpenSSL sul computer tramite l'apertura di un terminale o di una finestra di comando e l'utilizzo delle seguenti righe di comando.
+ Su Linux e Unix

  ```
  export PATH=$PATH:$OpenSSL_HOME/bin 
  ```
+ Su Windows

  ```
  set Path=OpenSSL_HOME\bin;%Path% 
  ```

**Nota**  
Eventuali modifiche apportate alle variabili di ambiente tramite l'utilizzo di queste righe di comando sono valide solo per la sessione della riga di comando attuale.

## Passaggio 2: creare una chiave privata
<a name="w2ab1c14c57c29c17"></a>

È necessaria una chiave privata univoca per creare la richiesta di firma del certificato (CSR). Crea la chiave utilizzando la seguente riga di comando:

```
openssl genrsa 2048 > privatekey.pem
```

## Passaggio 3: creare una richiesta di firma del certificato
<a name="w2ab1c14c57c29c19"></a>

Una richiesta di firma del certificato (CSR) è un file inviato a una Certificate Authority (CA) per richiedere un certificato server digitale. Creare la CSR utilizzando la seguente riga di comando.

```
openssl req -new -key privatekey.pem -out csr.pem
```

L'output del comando risulterà simile al seguente:

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

La tabella seguente aiuta a creare la richiesta di certificato.


**Dati di richiesta di certificato**  

| 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. | CorporationX | 
| Unità organizzativa | (Opzionale) Per informazioni aggiuntive sull'organizzazione. | Marketing | 
| Common Name (Nome comune) | Il nome di dominio pienamente qualificato per il CNAME. Si riceverà un avviso di controllo del nome di certificato se non è una corrispondenza esatta. | www.example.com | 
| Indirizzo e-mail | L'indirizzo e-mail dell'amministratore del server | someone@example.com | 

**Nota**  
Il campo Nome comune è spesso frainteso e viene completato in modo non corretto. Il nome comune è in genere l'host più il nome di dominio. Comparirà come "www.example.com" o "example.com". È necessario creare una CSR utilizzando il proprio nome comune corretto. 

## Passaggio 4: inviare il CSR alla Certificate Authority
<a name="w2ab1c14c57c29c21"></a>

Per l'utilizzo di produzione, è possibile ottenere un certificato server inviando il CSR a una Certificate Authority (CA) che potrebbe richiedere altre credenziali o prove di identità. Se la richiesta va a buon fine, la CA restituisce il certificato di identità con la firma digitale e possibilmente un file della catena del certificato. AWS non consiglia una CA specifica. Per un elenco parziale dei prodotti disponibili CAs, consulta [Certificate Authority - Providers](https://en.wikipedia.org/wiki/Certificate_authority#Providers) su Wikipedia.

È inoltre possibile generare un certificato autofirmato che può essere utilizzato solo a scopo di test. Per questo esempio, utilizzare la seguente riga di comando per generare un certificato autofirmato. 

```
openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt
```

L'output risulterà simile al seguente:

```
Loading 'screen' into random state - done
Signature ok
subject=/C=us/ST=washington/L=seattle/O=corporationx/OU=marketing/CN=example.com/emailAddress=someone@example.com
Getting Private key
```

## Passaggio 5: modificare la app
<a name="w2ab1c14c57c29c23"></a>

Dopo aver generato il certificato e averlo firmato, aggiornare la app per attivare SSL e fornire le informazioni di certificato. Nella pagina **App** scegliere un’app per aprire la pagina dei dettagli e fare clic su **Edit App (Modifica app)**. Per attivare il supporto SSL, impostare **Enable SSL (Abilita SSL)** su **Sì** per visualizzare le seguenti opzioni di configurazione.

**Certificato SSL**  
Copiare i contenuti del file di certificato della chiave pubblica (.crt) nella casella. Il certificato deve avere un aspetto simile al seguente:  

```
-----BEGIN CERTIFICATE-----
MIICuTCCAiICCQCtqFKItVQJpzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMC
dXMxEzARBgNVBAgMCndhc2hpbmd0b24xEDAOBgNVBAcMB3NlYXR0bGUxDzANBgNV
BAoMBmFtYXpvbjEWMBQGA1UECwwNRGV2IGFuZCBUb29sczEdMBsGA1UEAwwUc3Rl
cGhhbmllYXBpZXJjZS5jb20xIjAgBgkqhkiG9w0BCQEWE3NhcGllcmNlQGFtYXpv
...
-----END CERTIFICATE-----
```
Se si sta utilizzando Nginx e si dispone di un file della catena del certificato, è necessario aggiungere i contenuti al file di certificato della chiave pubblica.
Se si sta aggiornando un certificato esistente, eseguire le operazioni seguenti:  
+ Scegliere **Update SSL certificate (Aggiorna certificato SSL)** per aggiornare il certificato.
+ Se il nuovo certificato non corrisponde alla chiave privata esistente, scegliere **Update SSL certificate key (Aggiorna chiave certificato SSL)**.
+ Se il nuovo certificato non corrisponde alla catena di certificati esistente, scegliere **Update SSL certificates (Aggiorna certificato SSL)**.

**SSL Certificate Key (Chiave del certificato SSL)**  
Copiare i contenuti del file della chiave privata (file .pem) nella casella. Deve avere un aspetto simile al seguente:  

```
----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC0CYklJY5r4vV2NHQYEpwtsLuMMBhylMrgBShKq+HHVLYQQCL6
+wGIiRq5qXqZlRXje3GM5Jvcm6q0R71MfRIl1FuzKyqDtneZaAIEYniZibHiUnmO
/UNqpFDosw/6hY3ONk0fSBlU4ivD0Gjpf6J80jL3DJ4R23Ed0sdL4pRT3QIDAQAB
AoGBAKmMfWrNRqYVtGKgnWB6Tji9QrKQLMXjmHeGg95mppdJELiXHhpMvrHtpIyK
...
-----END RSA PRIVATE KEY-----
```

**SSL certificates of Certification Authorities (Certificati SSL delle Certification Authority)**  
Se si dispone di un file della catena del certificato, incollare il contenuto nella casella.  
Se si sta usando Nginx, è necessario lasciare la casella vuota. Se si dispone di un file della catena del certificato, aggiungerla al file del certificato della chiave pubblica in **SSL Certificate (Certificato SSL)**.

![\[SSL Settings interface with options for SSL Supporto, Certificate, Key, and Certification Authorities.\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/app_ssl_settings.png)


Dopo aver fatto clic su **Save (Salva)**, [ridistribuire l'applicazione](workingapps-deploying.md) per aggiornare le proprie istanze online.

Per i [livelli di application server integrati](workingcookbook-json.md#workingcookbook-json-deploy), OpsWorks Stacks aggiorna automaticamente la configurazione del server. Al termine della distribuzione, è possibile verificare che l'installazione OpenSSL è andata a buon fine, come segue.

**Per verificare un'installazione OpenSSL**

1. Andare alla pagina **Instances (Istanze)**.

1. Eseguire l'app facendo clic sull'indirizzo IP delle istanze del server di applicazione o, se si sta utilizzando un sistema di bilanciamento del carico, l'indirizzo IP del sistema di bilanciamento del carico.

1. Modificare il prefisso dell'indirizzo IP da **http://** a **https://** e aggiornare il browser per verificare che la pagina venga caricata correttamente con SSL.

Gli utenti che hanno configurato le app per l'esecuzione in Mozilla Firefox talvolta ottengono il seguente errore di certificato: `SEC_ERROR_UNKNOWN_ISSUER`. Questo errore può essere causato dalla funzionalità di sostituzione dei certificati nei programmi antivirus e antimalware dell'organizzazione, da alcuni tipi di software di monitoraggio e filtro del traffico di rete o da malware. Per ulteriori informazioni su come risolvere questo errore, consulta [Come interpretare i codici di errore e risolvere i problemi di sicurezza per i siti web sicuri](https://support.mozilla.org/en-US/kb/error-codes-secure-websites?redirectlocale=en-US&redirectslug=troubleshoot-SEC_ERROR_UNKNOWN_ISSUER#w_monitoringfiltering-in-corporate-networks) sul sito Web di supporto di Mozilla Firefox.

Per tutti gli altri livelli, inclusi i livelli personalizzati, OpsWorks Stacks aggiunge semplicemente le impostazioni SSL agli attributi [`deploy` dell'app](workingcookbook-json.md#workingcookbook-json-deploy). È necessario implementare una ricetta personalizzata per recuperare le informazioni dall'oggetto nodo e configurare il server in modo appropriato.