SSL տեղական զարգացման միջավայրում

Միայն HTTPS բրաուզերների, SameSite թխուկների և զարգացման իրատեսական պայմանների ժամանակ կարևոր է տեղում աշխատել իրական SSL վկայագրերի հետ: Let's Encrypt-ն այստեղ առաջնակարգ աշխատանք է կատարել՝ certbot-ի և Cloudflare-ի օգնությամբ, wildcard վկայագրերի ստեղծումն ու թարմացումը արագ և հեշտ է: Սա թույլ է տալիս մուտք գործել ձեր վեբ նախագծերը գաղտնագրված ցանկացած սարքի վրա (սմարթֆոն, VM, ...) տեղական ցանցում կամ VPN-ի միջոցով:


Մենք նախ գրանցում ենք մշակողի տիրույթ Cloudflare-ով, օրինակ vielhuber.dev:

Այժմ մենք թույլ ենք տալիս, որ այս տիրույթը մատնանշի իր սեփական տեղական IP հասցեն (օրինակ 192.168.0.2) ցույց տալ. Դա անելու համար ստեղծեք հետևյալ DNS A գրառումները (կարևոր է. վստահված անձի կարգավիճակը պետք է սահմանվի մոխրագույն/միայն DNS սահմանվել):

ՏեսակըԱնունըԲովանդակություն
Ա@192.168.0.2
Ա*192.168.0.2

Վարդերի վկայագրերը վավերացնելու համար անհրաժեշտ է ավտոմատ կերպով տեղադրել TXT գրառումները: Դա անելու համար մենք այժմ ստեղծում ենք API նշան (Profile > API Tokens > Create Token > Template: Edit zone DNS) և ընտրում ենք տիրույթը::

Ի վերջո, մենք ստեղծեցինք certbot:

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

Այժմ մենք պահում ենք նախկինում ստեղծված API նշանը:

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

Ի վերջո, մենք պահանջում ենք վկայական:

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

Ավտոմատ թարմացումը նույնպես արագ կարգավորվում է: Որպեսզի certbot-ը ինքնաբերաբար չաշխատի ամեն 12 ժամը մեկ պատահական ժամանակով, մենք նախ ապաակտիվացնում ենք ստանդարտ սկրիպտը և ավելացնում ենք մերը::

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

Սա այն ամենն է, ինչ անհրաժեշտ է. Apache-ին ինտեգրվելու համար դուք վկայակոչում եք ձեր նախագծերում Apache-ի կոնֆիգուրացիայի մեջ հենց նոր ստեղծված վկայականները (օրինակ. /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

Apache-ի վերագործարկումից հետո (sudo systemctl reload apache2) վկայականներն այնուհետև արդեն ակտիվ են, և դուք կարող եք մուտք գործել ձեր նախագծերը https://project-xy.vielhuber.dev.

Մի փոքր սկզբնական ջանք գործադրելով՝ դուք կարող եք ստեղծել լոկալ զարգացման միջավայր իրական բնագրերի վկայագրերով, որը ոչ միայն իրատեսական է, այլև անխափան աշխատում է ժամանակակից բրաուզերների, API-ների և սարքերի հետ: DNS-01 ստուգման շնորհիվ ձեզ հարկավոր չէ հանրությանը հասանելի սերվեր կամ ձեռքով վկայականի հարցումներ. ամեն ինչ ավտոմատացված է, ապահով և հուսալի:

Վերադառնալ