Come installo un certificato SSL Let's Encrypt con caratteri jolly in una pila Bitnami ospitata su Amazon Lightsail?

10 minuti di lettura
0

Come installo un certificato SSL con caratteri jolly per il mio sito web in un'istanza Amazon Lightsail con una pila Bitnami?

Breve descrizione

La seguente risoluzione riguarda l'installazione di un certificato SSL Let's Encrypt con caratteri jolly per i siti Web ospitati in un'istanza Lightsail con una pila Bitnami. Esempi di questi schemi di istanza includono WordPress, LAMP, Magento, MEAN e così via. Se disponi di uno schemi di istanza diverso o desideri installare un certificato standard, consulta una delle seguenti opzioni:

Certificati Let's Encrypt standard

Per installare un certificato SSL Let's Encrypt standard in un'istanza Lightsail senza una pila Bitnami, vedi How do I install a standard Let's Encrypt SSL certificate in a Lightsail instance? (Come si installa un certificato SSL Let's Encrypt standard in un'istanza Lightsail?) Ciò include istanze come Amazon Linux 2 e Ubuntu.

Per installare un certificato SSL Let's Encrypt standard in un'istanza Lightsail con una pila Bitnami, vedi How do I install a Let's Encrypt SSL certificate in a Bitnami stack hosted on Amazon Lightsail? (Come si installa un certificato SSL Let's Encrypt in una pila Bitnami ospitata su Amazon Lightsail?) Ciò include istanze come WordPress, LAMP e Magento.

Certificati con caratteri jolly Let's Encrypt (ad esempio, *.example.com)

Per installare un certificato wildcard Let's Encrypt in un'istanza Lightsail senza una pila Bitnami, vedi How do I install a wildcard Let's Encrypt SSL certificate in Amazon Lightsail? (Come si installa un certificato SSL Let's Encrypt con caratteri jolly in Amazon Lightsail?) Ciò include istanze come Amazon Linux 2 e Ubuntu.

Risoluzione

I passaggi utilizzati per installare un certificato SSL Let's Encrypt con caratteri jolly su un'istanza Lightsail ospitata da Bitnami dipendono dal provider DNS utilizzato dal dominio. Per determinare quale metodo utilizzare, verifica se il provider DNS è elencato nei provider DNS nella documentazione Lego. Quindi, seleziona il metodo appropriato da utilizzare:

Metodo 1: utilizza lo strumento Lego fornito da Bitnami se il tuo dominio utilizza uno dei provider DNS elencati.

Metodo 2: usa il pacchetto Certbot se il tuo dominio non utilizza nessuno dei provider DNS elencati.

Nota: i percorsi dei file menzionati in questo articolo potrebbero cambiare in base all'utilizzo dei pacchetti di sistema Linux nativi (Approccio A) da parte della pila Bitnami o dell'installazione autonoma (Approccio B). Per identificare il tipo di installazione di Bitnami, esegui il seguente comando:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Metodo 1

Insieme a bncert-tool, la pila Bitnami fornisce lo strumento Lego. Questo strumento supporta la creazione di certificati SSL con caratteri jolly, mentre bncert-tool no.

Prerequisiti e limitazioni

  • I seguenti passaggi illustrano l'installazione del certificato nel server. Devi completare manualmente ulteriori passaggi, ad esempio la configurazione del server Web per l'utilizzo del certificato e l'impostazione del reindirizzamento HTTPS.
  • Il dominio deve utilizzare uno dei provider DNS elencati in DNS Providers (DNS Providers) nella documentazione Lego.

Nota: nell'esempio seguente, il provider DNS è Amazon Route 53 o Amazon Lightsail.

1.    Crea un utente AWS Identity and Access Management (IAM) con accesso programmatico. Per le autorizzazioni minime necessarie da allegare all'utente IAM affinché Lego possa completare la sfida DNS, consulta Policy nella documentazione Lego.

2.    Esegui i seguenti comandi nell'istanza per aprire il file /root/.aws/credentials file in nano editor.

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    Copia le seguenti righe nel file. Quindi salva il file premendo ctrl+x, premi y e poi INVIO.

Nel comando seguente, sostituisci aws_access_key_id con l'ID della chiave di accesso creato nel passaggio 1. Sostituisci un aws_secret_access_key con la chiave di accesso segreta creata nel passaggio 1.

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    Se l'istanza Bitnami non include la directory /opt/bitnami/letsencrypt/, puoi installare manualmente il client Lego utilizzando i seguenti comandi:

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
tar xf lego.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

5.    Crea un certificato Let's Encrypt nel server. Sostituisci INDIRIZZO-EMAIL con l'indirizzo e-mail su cui desideri ricevere ulteriori aggiornamenti sul tuo certificato. Sostituisci DOMINIO con il tuo nome di dominio.

Server dei nomi Route 53

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Server dei nomi Lightsail

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

Dopo che il certificato SSL è stato generato correttamente, riceverai il messaggio "Il server ha risposto con un certificato". Il certificato SSL e la chiave privata vengono generati nelle seguenti posizioni:

/opt/bitnami/letsencrypt/certificates/DOMAIN.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    Collega il certificato SSL e il file della chiave del certificato alle posizioni attualmente lette dal server Web:

Apache nell'approccio A

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache nell'approccio B

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX nell'approccio A

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX nell'approccio B

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

7.    Imposta il rinnovo automatico del certificato.

I certificati Let's Encrypt sono validi per 90 giorni. Per automatizzare il rinnovo del certificato in modo che il certificato si rinnovi automaticamente prima della scadenza, effettua le seguenti operazioni:

Esegui il seguente comando per aprire l'editor crontab:

sudo crontab -e -u bitnami

Aggiungi le seguenti righe al file crontab e quindi salva il file. Sostituisci INDIRIZZO-EMAIL con il tuo indirizzo e-mail, DOMINIO con il tuo nome di dominio e DNS con il nome del provider del tuo server dei nomi (Route 53, Lightsail e così via).

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

8.    Imposta il reindirizzamento HTTPS. Per ulteriori informazioni, consulta le seguenti informazioni sul sito web Bitnami:

Metodo 2

Prerequisiti e limitazioni

  • I seguenti passaggi illustrano l'installazione del certificato nel server. Devi comunque completare manualmente ulteriori passaggi, ad esempio la configurazione del server Web per l'utilizzo del certificato e l'impostazione del reindirizzamento HTTPS.
  • Il rinnovo automatico del certificato non è supportato in questo metodo.

Nota: prima di iniziare i seguenti passaggi, installa Certbot. Per istruzioni sull'installazione, consulta Come installo il pacchetto Certbot nella mia istanza Lightsail per l'installazione del certificato Let's Encrypt?

Per le istanze ospitate da Bitnami, la distribuzione Linux è Debian o Ubuntu. Esegui il seguente comando per confermare la distribuzione Linux di cui disponi:

cat /etc/os-release | grep -i ^id

1.    Questo metodo richiede l'aggiunta di registri TXT nel provider DNS del dominio. Questo processo potrebbe richiedere del tempo, quindi è da considerarsi best practice eseguire i comandi in Linux GNU Screen per evitare il timeout della sessione. Per avviare una sessione Screen, inserisci il seguente comando:

screen -S letsencrypt

2.    Inserisci il seguente comando per avviare Certbot in modalità interattiva. Questo comando indica a Certbot di utilizzare un metodo di autorizzazione manuale con sfide DNS per verificare la proprietà del dominio. Sostituisci example.com con il tuo nome di dominio.

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

3.    Ti viene richiesto di verificare di essere il proprietario del dominio specificato aggiungendo registri TXT ai registri DNS del dominio. Let's Encrypt fornisce uno o più registri TXT che devi utilizzare per la verifica.

4.    Quando vedi un registro TXT sullo schermo, aggiungi innanzitutto il registro fornito nel DNS del tuo dominio.
Importante: non premere invio finché non confermi che il registro TXT è stato propagato al DNS Internet. Inoltre, non premere CTRL+D perché così facendo si interrompe la sessione sullo schermo.

5.    Per confermare che il record TXT è stato propagato al DNS di Internet, cercalo su DNS Text Lookup su MxToolbox. Inserisci il seguente testo nella casella di testo, quindi scegli Ricerca TXT per eseguire il controllo. Assicurati di sostituire example.com con il tuo dominio.

_acme-challenge.example.com

6.    Se i registri TXT vengono propagati al DNS di Internet, vedrai il valore del registro TXT nella pagina. Quindi, torna allo schermo e premi INVIO.

7.    Se vieni rimosso dalla shell, torna indietro utilizzando la schermata di comando -r SESSIONID. Ottieni l'ID sessione eseguendo la schermata di comando -ls.

8.    Se il prompt di Certbot chiede di aggiungere un altro registro TXT, completa nuovamente i passaggi da 4 a 7.

9.    Dopo che il certificato SSL è stato generato correttamente, riceverai il messaggio "Certificato ricevuto correttamente". Vengono inoltre forniti i percorsi del certificato e dei file della chiave. Salva questi percorsi di file in un blocco note per utilizzarli nel passaggio successivo.

10.    Solo l'installazione del certificato e la configurazione del rinnovo sono completate. Devi comunque configurare il server web per utilizzare questo certificato e configurare il reindirizzamento HTTPS. Utilizza uno dei seguenti set di comandi per configurare il server Web in modo che utilizzi il certificato.

Apache nell'approccio A

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

Apache nell'approccio B

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

NGINX nell'approccio A

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

NGINX nell'approccio B

Nei comandi di esempio seguenti, sostituisci il segnaposto DOMINIO con il nome di dominio.

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

8.    Imposta il reindirizzamento HTTPS. Per ulteriori informazioni, consulta le seguenti informazioni sul sito web Bitnami:


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa