SSL në mjedisin e zhvillimit lokal

Në kohën e shfletuesve vetëm me HTTPS, kukive SameSite dhe kushteve realiste të zhvillimit, është e rëndësishme të punoni në nivel lokal me certifikata reale SSL. Let's Encrypt ka bërë punë pioniere këtu – me ndihmën e certbot dhe Cloudflare , krijimi dhe rinovimi i certifikatave të karaktereve të egra është i shpejtë dhe i lehtë. Kjo ju lejon të aksesoni projektet tuaja të uebit të koduara në çdo pajisje (smartphone, VM, ...) në rrjetin lokal ose nëpërmjet VPN.


Ne fillimisht regjistrojmë një domen zhvilluesish me Cloudflare, për shembull vielhuber.dev:

Tani e lëmë këtë domen të tregojë adresën e vet IP lokale (për shembull 192.168.0.2) tregojnë. Për ta bërë këtë, krijoni të dhënat e mëposhtme DNS A (e rëndësishme: Statusi i përfaqësuesit duhet të vendoset në gri/vetëm për DNS të vendoset):

LlojiEmriPërmbajtja
A@192.168.0.2
A*192.168.0.2

Për të vërtetuar certifikatat e shkronjave të egra, është e nevojshme të vendosni automatikisht regjistrimet TXT. Për ta bërë këtë, ne tani krijojmë një shenjë API (Profili > Shenjat API > Krijo Token > Shablloni: Ndrysho zonën DNS) dhe zgjedhim domenin:

Më në fund, vendosëm certbot:

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

Tani ne depozitojmë shenjën API të krijuar më parë:

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

Së fundi, ne kërkojmë një certifikatë:

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

Rinovimi automatik gjithashtu konfigurohet shpejt. Për të parandaluar që certbot të funksionojë automatikisht çdo 12 orë me një kohë të rastësishme, ne fillimisht çaktivizojmë skriptin standard dhe shtojmë tonën:

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

Kjo është gjithçka që nevojitet: Për t'u integruar në Apache, ju referoheni certifikatave që sapo keni krijuar në konfigurimin e Apache në projektet tuaja (p.sh. /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

Pas një rinisjeje Apache (sudo systemctl reload apache2) atëherë certifikatat janë tashmë aktive dhe ju mund të përdorni projektet tuaja me të https://project-xy.vielhuber.dev.

Me një përpjekje të vogël fillestare, ju mund të ndërtoni një mjedis zhvillimi lokal me certifikata të vërteta të karakterit të egër që jo vetëm që është realiste, por gjithashtu funksionon pa probleme me shfletuesit, API-të dhe pajisjet moderne. Falë verifikimit DNS-01, nuk keni nevojë për një server të aksesueshëm publikisht ose kërkesa për certifikatë manuale – gjithçka është e automatizuar, e sigurt dhe e besueshme.

Mbrapa