Ricerca nel sito web

Come creare certificati SSL attendibili a livello locale con mkcert su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa Mkcert
  4. Genera CA locale
  5. Genera un certificato per il sito web locale
  6. Configura Nginx per utilizzare il certificato generato
  7. Verifica SSL per il tuo dominio
  8. Conclusione

Mkcert è uno strumento gratuito, semplice e molto utile che ti consente di creare un certificato attendibile a livello locale senza acquistarlo dalla CA reale. Gli sviluppatori di solito lavorano sul sistema locale ed è sempre impossibile utilizzare il certificato attendibile della CA su localhost. Mkcert ti consente di gestire i tuoi certificati senza problemi.

In questo post, ti mostreremo come creare un certificato SSL attendibile per lo sviluppo locale utilizzando Mkcert su Ubuntu 20.04.

Prerequisiti

  • Un sistema che esegue Ubuntu 20.04 Desktop.
  • Sul server è configurata una password di root.

Iniziare

Innanzitutto, aggiorna i pacchetti di sistema alla versione aggiornata eseguendo il seguente comando:

apt-get update -y

Una volta aggiornati tutti i pacchetti, puoi procedere al passaggio successivo.

Installa Mccert

Prima di installare l'utility Mkcert, dovrai installare i pacchetti richiesti sul tuo server. Puoi installarlo con il seguente comando:

apt-get install wget libnss3-tools

Una volta installati tutti i pacchetti, scarica l'ultima versione di Mkcert da Github.

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

Dopo aver scaricato Mkcert, sposta il binario scaricato nel percorso di sistema:

mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert

Successivamente, imposta l'autorizzazione di esecuzione su mkcert:

chmod +x /usr/bin/mkcert

Successivamente, verifica la versione di Mkcert con il seguente comando:

mkcert --version

Dovresti vedere il seguente output:

v1.4.3

Genera CA locale

Ora, esegui il seguente comando per generare un certificato CA locale:

mkcert -install

Dovresti vedere il seguente output:

Created a new local CA ????
The local CA is now installed in the system trust store! ??
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! ????

È possibile controllare il percorso del certificato CA utilizzando il seguente comando:

mkcert -CAROOT

Dovresti vedere il seguente output:

/root/.local/share/mkcert

Genera un certificato per il sito web locale

Successivamente, puoi generare il certificato e il file chiave per il tuo sito Web ospitato localmente utilizzando il seguente comando:

mkcert app.example.com localhost 127.0.0.1 ::1

Dovresti vedere il seguente output:

Created a new certificate valid for the following names ????
 - "app.example.com"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./app.example.com+3.pem" and the key at "./app.example.com+3-key.pem" ?

It will expire on 1 November 2023 ????

Configura Nginx per utilizzare il certificato generato

Successivamente, dovrai configurare il server web Nginx per utilizzare i certificati generati.

Per prima cosa, copia i file del certificato generato nella directory /etc/ssl/:

cp app.example.com+3* /etc/ssl/

Successivamente, imposta la proprietà corretta sulla directory root web di Nginx:

chown -R www-data:www-data /var/www/html/

Successivamente, crea un file di configurazione dell'host virtuale Nginx con il seguente comando:

nano /etc/nginx/conf.d/app.conf

Aggiungi le seguenti righe:

server {
   listen 80;
   server_name app.example.com;
   root /var/www/html;
}

server {
   listen *:443 ssl;
   root /var/www/html;
   server_name app.example.com;
   ssl_certificate /etc/ssl/app.example.com+3.pem; 
   ssl_certificate_key /etc/ssl/app.example.com+3-key.pem;
}

Salva e chiudi il file quando hai finito, quindi verifica Nginx per eventuali errori di sintassi:

nginx -t

Dovresti vedere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Successivamente, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Successivamente, modifica il file /etc/hosts e collega app.example.com al tuo indirizzo IP di sistema:

nano /etc/hosts

Aggiungi le seguenti righe:

your-server-ip app.example.com

Verifica SSL per il tuo dominio

Ora apri il tuo browser web e digita l'URL https://app.example.com. Dovresti vedere che il tuo dominio è protetto con Mkcert.

Ora, fai clic sull'icona del lucchetto. Dovresti vedere le informazioni sul tuo certificato nella pagina seguente:

Conclusione

Congratulazioni! hai installato correttamente Mkcert e creato un certificato CA attendibile per il tuo sviluppo locale. Consiglierei di utilizzare Mkcert solo per l'ambiente di sviluppo. Non è consigliato per l'ambiente di produzione.