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

برای اعتبار سنجی گواهینامه های wildcard، لازم است که رکوردهای 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

این تمام چیزی است که لازم است: برای ادغام با آپاچی، به گواهی هایی که در پیکربندی آپاچی در پروژه های خود ایجاد کرده اید مراجعه کنید (به عنوان مثال. /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

پس از راه اندازی مجدد آپاچی (sudo systemctl reload apache2) پس از آن گواهی ها از قبل فعال هستند و می توانید به پروژه های خود دسترسی داشته باشید https://project-xy.vielhuber.dev.

با کمی تلاش اولیه، می‌توانید یک محیط توسعه محلی با گواهی‌های عام واقعی بسازید که نه تنها واقع‌بینانه است، بلکه با مرورگرها، APIها و دستگاه‌های مدرن هم کار می‌کند. به لطف تأیید DNS-01، نیازی به سرور در دسترس عموم یا درخواست های گواهی دستی ندارید - همه چیز خودکار، ایمن و قابل اعتماد است.

بازگشت