SSL en loka evolua medio

En tempoj de nur HTTPS-retumiloj, SameSite-kuketoj kaj realismaj evolukondiĉoj, estas grave labori loke kun realaj SSL-atestiloj. Let's Encrypt faris pioniran laboron ĉi tie - kun la helpo de certbot kaj Cloudflare , krei kaj renovigi ĵokerajn atestojn estas rapida kaj facila. Ĉi tio ebligas al vi aliri viajn retprojektojn ĉifritajn en iu ajn aparato (smartphone, VM, ...) en la loka reto aŭ per VPN.


Ni unue registras programistan domajnon kun Cloudflare, ekzemple vielhuber.dev:

Ni nun lasas ĉi tiun domajnon indiki sian propran lokan IP-adreson (ekzemple 192.168.0.2) montri. Por fari tion, kreu la sekvajn DNS A-rekordojn (grave: La prokura statuso devas esti agordita al griza/DNS-nur estu agordita):

TajpuNomoEnhavo
A@192.168.0.2
A*192.168.0.2

Por validigi la ĵokerajn atestojn, necesas aŭtomate agordi TXT-rekordojn. Por fari tion, ni nun kreas API-ĵetonon (Profilo> API-Tokens> Krei Tokenon> Ŝablono: Redaktu zonon DNS) kaj elektas la domajnon.:

Fine, ni starigis certbot:

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

Nun ni deponas la antaŭe generitan API-ĵetonon:

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

Fine ni petas atestilon:

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

Aŭtomata renovigo ankaŭ estas instalita rapide. Por malhelpi certbot funkcii aŭtomate ĉiujn 12 horojn kun hazarda tempo, ni unue malaktivigas la norman skripton kaj aldonas nian propran:

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

Ĉi tio estas ĉio, kio necesas: Por integriĝi en Apache, vi referencas al la atestiloj, kiujn vi ĵus kreis en la Apache-agordo en viaj projektoj (ekz. /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

Post rekomenco de Apache (sudo systemctl reload apache2) la atestiloj tiam estas jam aktivaj kaj kun vi povas aliri viajn projektojn https://project-xy.vielhuber.dev.

Kun iom da komenca peno, vi povas konstrui lokan evoluan medion kun veraj ĵokeraj atestiloj, kiuj ne nur estas realismaj, sed ankaŭ funkcias perfekte kun modernaj retumiloj, API-oj kaj aparatoj. Danke al DNS-01-kontrolo, vi ne bezonas publike alireblan servilon aŭ manajn atestilpetojn - ĉio estas aŭtomatigita, sekura kaj fidinda.

Reen