SSL nell'ambiente di sviluppo locale

In un'epoca di browser solo HTTPS, cookie SameSite e condizioni di sviluppo realistiche, è importante lavorare localmente con veri certificati SSL. Let's Encrypt ha svolto un lavoro pionieristico in questo ambito: con l'aiuto di certbot e Cloudflare , creare e rinnovare i certificati jolly è rapido e semplice. Ciò consente di accedere ai propri progetti web in modo crittografato da qualsiasi dispositivo (smartphone, VM, ...) nella rete locale o tramite VPN.


Per prima cosa registriamo un dominio sviluppatore con Cloudflare, ad esempio vielhuber.dev:

Ora lasciamo che questo dominio punti al suo indirizzo IP locale (ad esempio 192.168.0.2) spettacolo. Per fare ciò, crea i seguenti record DNS A (importante: lo stato del proxy deve essere impostato su grigio/solo DNS essere impostato):

TipoNomeContenuto
UN@192.168.0.2
UN*192.168.0.2

Per convalidare i certificati jolly è necessario impostare automaticamente i record TXT. Per fare ciò, ora creiamo un token API (Profilo > Token API > Crea token > Modello: Modifica DNS di zona) e selezioniamo il dominio:

Infine, abbiamo configurato certbot:

sudo apt install certbot python3-certbot-dns-cloudflare
pip install --upgrade pyOpenSSL cryptography certbot certbot-dns-cloudflare

Ora depositiamo il token API generato in precedenza:

mkdir -p ~/.secrets/certbot
nano ~/.secrets/certbot/cloudflare.ini
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN_WITH_EDIT_ZONE_DNS_PERMISSIONS
chmod 600 ~/.secrets/certbot/cloudflare.ini

Infine, richiediamo un certificato:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  --dns-cloudflare-propagation-seconds 60 \
  -d '*.vielhuber.dev' -d vielhuber.dev \
  --agree-tos \
  --email david@vielhuber.de \
  --non-interactive

Anche il rinnovo automatico viene impostato rapidamente. Per evitare che certbot venga eseguito automaticamente ogni 12 ore con un orario casuale, disattiviamo prima lo script standard e aggiungiamo il nostro:

sudo mv /etc/cron.d/certbot /etc/cron.d/certbot.disabled
( crontab -l 2>/dev/null; echo "0 12 * * * certbot renew --quiet" ) | crontab -
certbot renew --dry-run

Ecco tutto ciò che serve: per l'integrazione in Apache, fai riferimento ai certificati appena creati nella configurazione di Apache nei tuoi progetti (ad es. /etc/apache2/sites-available/project-xy.conf):

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/vielhuber.dev/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/vielhuber.dev/privkey.pem

Dopo un riavvio di Apache (sudo systemctl reload apache2) i certificati sono quindi già attivi e puoi accedere ai tuoi progetti con https://project-xy.vielhuber.dev.

Con un piccolo sforzo iniziale, è possibile creare un ambiente di sviluppo locale con veri certificati jolly che non solo è realistico, ma funziona anche perfettamente con browser, API e dispositivi moderni. Grazie alla verifica DNS-01, non hai bisogno di un server accessibile al pubblico o di richieste manuali di certificati: tutto è automatizzato, sicuro e affidabile.

Indietro