في أوقات متصفحات HTTPS فقط، وملفات تعريف الارتباط SameSite، وظروف التطوير الواقعية، من المهم العمل محليًا باستخدام شهادات SSL حقيقية. لقد قامت Let's Encrypt بعمل رائد هنا - بمساعدة certbot و Cloudflare ، أصبح إنشاء وتجديد شهادات Wildcard سريعًا وسهلاً. يتيح لك هذا الوصول إلى مشاريع الويب الخاصة بك المشفرة على أي جهاز (هاتف ذكي، جهاز افتراضي، ...) في الشبكة المحلية أو عبر VPN.
نقوم أولاً بتسجيل نطاق المطور مع Cloudflare، على سبيل المثال vielhuber.dev
:

نسمح الآن لهذا المجال بالإشارة إلى عنوان IP المحلي الخاص به (على سبيل المثال 192.168.0.2
) يعرض. للقيام بذلك، قم بإنشاء سجلات DNS A التالية (هام: يجب تعيين حالة الوكيل على رمادي/DNS فقط يتم ضبطها):
يكتب | اسم | محتويات |
---|---|---|
أ | @ | 192.168.0.2 |
أ | * | 192.168.0.2 |
للتحقق من صحة شهادات البدل، من الضروري تعيين سجلات TXT تلقائيًا. للقيام بذلك، نقوم الآن بإنشاء رمز API (الملف الشخصي > رموز API > إنشاء رمز > قالب: تحرير 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.
ببذل القليل من الجهد الأولي، يمكنك إنشاء بيئة تطوير محلية بشهادات عامة حقيقية ليست واقعية فحسب، بل تعمل أيضًا بسلاسة مع المتصفحات الحديثة وواجهات برمجة التطبيقات والأجهزة. بفضل التحقق من DNS-01، لا تحتاج إلى خادم يمكن الوصول إليه بشكل عام أو طلبات شهادة يدوية - كل شيء يتم تلقائيًا وآمن وموثوق.