شهادات Azure Firewall Premium

لتكوين فحص Azure Firewall Premium TLS بشكل صحيح، يجب توفير شهادة CA وسيطة صالحة وإيداعها في Azure Key vault.

الشهادات المستخدمة بواسطة Azure Firewall Premium

هناك ثلاثة أنواع من الشهادات المستخدمة في النشر النموذجي:

  • شهادة CA وسيطة (شهادة CA)

    هيئة الشهادات (CA) هي مؤسسة موثوق بها لتوقيع الشهادات الرقمية. تتحقق هيئة الشهادات من هوية وشرعية شركة أو فرد يطلب شهادة. إذا كان التحقق ناجحًا، فستصدر هيئة الشهادات شهادة موقعة. عندما يقدم الخادم الشهادة إلى العميل (على سبيل المثال، متصفح الويب الخاص بك) أثناء تأكيد اتصال SSL/TLS، يحاول العميل التحقق من التوقيع مقابل قائمة الموقعين الجيدين المعروفين. عادة ما تأتي متصفحات الويب مزودة بقوائم لمؤسسات شهادات تثق ضمنيًا في تحديد المضيفين. إذا لم تكن الهيئة موجودة في القائمة، كما هو الحال مع بعض المواقع التي توقع على شهاداتها الخاصة، يقوم المتصفح بتنبيه المستخدم بأن الشهادة غير موقعة من قبل جهة معترف بها ويسأل المستخدم عما إذا كان يرغب في متابعة الاتصالات مع موقع لم يتم التحقق منه.

  • شهادة الخادم (شهادة موقع الويب)

    شهادة مقترنة باسم مجال معين. إذا كان موقع ويب يحتوي على شهادة صالحة، فهذا يعني أن هيئة شهادات قد اتخذت خطوات للتحقق من أن عنوان الويب ينتمي بالفعل إلى تلك المؤسسة. عند كتابة عنوان URL أو اتباع ارتباط إلى موقع ويب آمن، يتحقق المتصفح من الشهادة للخصائص التالية:

    • عنوان الموقع يطابق العنوان الموجود في الشهادة.
    • الشهادة موقعة من قبل هيئة شهادات يتعرف عليها المتصفح كهيئة موثوق بها.

    أحيانًا قد يتصل المستخدمون بخادم يحمل شهادة غير موثوق بها. سيقوم Azure Firewall بإسقاط الاتصال كما لو أن الخادم أنهى الاتصال.

  • شهادة CA للجذر (شهادة الجذر)

    يمكن لهيئة الشهادات إصدار شهادات متعددة في شكل بنية شجرة. الشهادة الجذر هي الشهادة الأعلى في الشجرة.

يمكن لـAzure Firewall Premium اعتراض حركة مرور HTTP/S الصادرة وإنشاء شهادة خادم تلقائيًا لـ www.website.com. يتم إنشاء هذه الشهادة باستخدام شهادة CA الوسيطة التي توفرها. يجب أن يثق متصفح المستخدم النهائي وتطبيقات العميل شهادة CA لجذر المؤسسة أو شهادة CA الوسيطة لهذا الإجراء للعمل.

Certificate process

متطلبات شهادة CA الوسيطة

تأكد من أن شهادة هيئة الشهادات تتوافق مع المتطلبات التالية:

  • عند نشرها كبيانات سرية ل Key Vault، يجب عليك استخدام PFX بدون كلمة مرور (PKCS12) مع شهادة ومفتاح خاص. شهادات PEM غير مدعومة.

  • يجب أن تكون شهادة فردية، ويجب ألا تتضمن سلسلة الشهادات الكاملة.

  • يجب أن تكون صالحة لمدة سنة واحدة مقبلة.

  • يجب أن تكون مفتاح RSA خاص مع حد أدنى للحجم قدره 4096 بايت.

  • يجب أن يكون الملحق KeyUsage مميزًا كـ "حرج" مع العلامة KeyCertSign (RFC 5280؛ 4.2.1.3 استخدام المفتاح).

  • يجب أن تحتوي على الملحق BasicConstraints مميزًا كـ "حرج" مع العلامة (RFC 5280؛ 4.2.1.9 القيود الأساسية).

  • يجب تعيين العلامة CA إلى TRUE.

  • ‏‏يجب أن يكون طول المسار أكبر من أو يساوي صفر.

  • يجب أن يكون قابلا للتصدير.

Azure Key Vault

Azure Key Vault هو مخزن سري يديره النظام الأساسي يمكنك استخدامه لحماية الأسرار والمفاتيح وشهادات TLS/SSL. يدعم Azure Firewall Premium التكامل مع Key Vault لشهادات الخادم المرفقة بـ Firewall Policy.

لتكوين key vault:

  • تحتاج إلى استيراد شهادة موجودة مع زوج المفاتيح الخاص بها إلى key vault الخاص بك.
  • بدلًا من ذلك، يمكنك أيضًا استخدام سر key vault المخزن كملف PFX مرمز بـbase-64 والذي لا يتطلب كلمة مرور. ملف PFX هو شهادة رقمية تحتوي على مفتاح خاص ومفتاح عام.
  • من المستحسن استخدام استيراد شهادة CA لأنه يسمح لك بتكوين تنبيه استنادًا إلى تاريخ انتهاء صلاحية الشهادة.
  • بعد استيراد شهادة أو سر، تحتاج إلى تحديد نهج الوصول في key vault للسماح للهوية التي سيتم منحها بالوصول إلى الشهادة/السر.
  • يجب الوثوق بشهادة CA المتوفرة من قبل حمل عمل Azure. تأكد من نشرها بشكل صحيح.
  • نظرا لأن Azure Firewall Premium مدرج كخدمة موثوق بها في Key Vault، فإنه يسمح لك بتجاوز جدار الحماية الداخلي ل Key Vault والقضاء على أي تعرض ل Key Vault الخاص بك على الإنترنت.

إشعار

كلما قمت باستيراد شهادة المرجع المصدق لجدار الحماية الجديدة إلى Azure Key Vault (إما للمرة الأولى أو استبدال شهادة CA منتهية الصلاحية)، يجب عليك تحديث إعداد TLS لنهج جدار حماية Azure بشكل صريح بالشهادة الجديدة.

يمكنك إما إنشاء هوية مدارة تم تعيينها من قبل المستخدم أو إعادة استخدام هوية موجودة، والتي يستخدمها Azure Firewall لاسترداد الشهادات من Key Vault نيابةً عنك. لمزيد من المعلومات، راجع ما هي الهويات المدارة لموارد Azure؟

إشعار

التحكم في الوصول المستند إلى دور Azure (Azure RBAC) غير مدعوم حاليا للتخويل. استخدم نموذج نهج الوصول بدلا من ذلك. لمزيد من المعلومات، راجع التحكم في الوصول المستند إلى الدور في Azure (Azure RBAC) مقابل نهج الوصول.

تكوين شهادة في النهج الخاص بك

لتكوين شهادة CA في نهج Firewall Premium الخاص بك، حدد النهج الخاص بك ثم حدد فحص TLS. حدد ممكن في صفحة فحص TLS. ثم حدد شهادة CA في Azure Key Vault، كما هو موضح في الشكل التالي:

Azure Firewall Premium overview diagram

هام

لمشاهدة شهادة وتكوينها من مدخل Azure، يجب إضافة حساب مستخدم Azure إلى نهج الوصول إلى Key Vault. امنح حساب المستخدم الخاص بك أذونات الحصولوالقائمة ضمن أذونات سرية. Azure Key Vault Access policy

بعد ذلك، قم بإنشاء شهادة CA موقعة ذاتيًا.

إذا كنت ترغب في إنشاء الشهادات الخاصة بك لمساعدتك على اختبار فحص TSL والتحقق منه، فيمكنك استخدام البرامج النصية التالية لإنشاء CA الجذر وCA الوسيطة الموقعتين ذاتيًا.

هام

للإنتاج، يجب استخدام PKI الشركة لإنشاء شهادة CA وسيطة. تستفيد شركة PKI من البنية التحتية الموجودة وتعالج توزيع CA للجذر على كافة أجهزة نقطة النهاية. لمزيد من المعلومات، راجع نشر وتكوين شهادات CA للمؤسسات لـ Azure Firewall.

هناك إصداران لهذا البرنامج النصي.

  • البرنامج النصي bashcert.sh
  • البرنامج النصي PowerShel cert.ps1

أيضًا، يستخدم كلا البرنامجين النصيين ملف التكوين openssl.cnf. لاستخدام البرامج النصية، انسخ محتويات openssl.cnf و cert.sh أو cert.ps1 إلى الكمبيوتر المحلي.

تقوم البرامج النصية بإنشاء الملفات التالية:

  • rootCA.crt/rootCA.key - شهادة CA عامة للجذر ومفتاح خاص.
  • interCA.crt/interCA.key - شهادة CA العامة وسيطة ومفتاح خاص
  • interCA.pfx - حزمة pkcs12 لشهادة CA الوسيطة التي سيستخدمها جدار الحماية

هام

يجب تخزين rootCA.key في موقع آمن دون اتصال. تقوم البرامج النصية بإنشاء شهادة بصلاحية 1024 يوم. تتطلب البرامج النصية ثنائيات openssl المثبتة في الجهاز المحلي. لمزيد من المعلومات، راجع https://www.openssl.org/

بعد إنشاء الشهادات، انشرها إلى المواقع التالية:

  • rootCA.crt - النشر على أجهزة نقطة النهاية (شهادة عامة فقط).
  • interCA.pfx - الاستيراد كشهادة في Key Vault والتعيين إلى نهج جدار الحماية.

openssl.cnf

[ req ]
default_bits        = 4096
distinguished_name  = req_distinguished_name
string_mask         = utf8only
default_md          = sha512

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name
localityName                    = Locality Name
0.organizationName              = Organization Name
organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name
emailAddress                    = Email Address

[ rootCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ interCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:1
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ server_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:false
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth

البرامج النصية Bash - cert.sh

#!/bin/bash

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 1024 -out rootCA.crt -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA" -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA"

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 1024 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password "pass:"

echo ""
echo "================"
echo "Successfully generated root and intermediate CA certificates"
echo "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
echo "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
echo "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
echo "================"

PowerShell - cert.ps1

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 3650 -out rootCA.crt -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA' -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA'

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 3650 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password 'pass:'

Write-Host ""
Write-Host "================"
Write-Host "Successfully generated root and intermediate CA certificates"
Write-Host "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
Write-Host "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
Write-Host "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
Write-Host "================"

التوليد التلقائي للشهادة

بالنسبة إلى عمليات النشر غير الإنتاجية، يمكنك استخدام آلية الإنشاء التلقائي لشهادات Azure Firewall Premium، والتي تقوم تلقائيًا بإنشاء الموارد الثلاثة التالية لك:

  • الهوية المُدارة
  • المخزن الرئيسي
  • شهادة CA للجذر الموقعة ذاتيًا

ما عليك سوى اختيار الهوية المُدارة الجديدة، وهي تربط الموارد الثلاثة معًا في سياسة Premium الخاصة بك وتقوم بإعداد فحص TLS.

Screenshot showing auto-generated certificates.

استكشاف الأخطاء وإصلاحها

إذا كانت شهادة CA خاصتك صالحة، إلا أنه لا يمكنك الوصول إلى FQDN أو عناوين URL ضمن فحص TSL، فتحقق من العناصر التالية:

  • تأكد من صلاحية شهادة خادم الويب.

  • تأكد من تثبيت شهادة CA للجذر على نظام تشغيل العميل.

  • تأكد من أن المتصفح أو عميل HTTPS يحتوي على شهادة جذر صالحة. Firefox وبعض المتصفحات الأخرى قد يكون لها نهج شهادة خاصة.

  • تأكد من أن نوع وجهة URL في قاعدة التطبيق يغطي المسار الصحيح وأي ارتباطات تشعبية أخرى مضمنة في صفحة HTML للوجهة. يمكنك استخدام أحرف البدل لتغطية مسار URL المطلوب بالكامل بسهولة.

الخطوات التالية