مشاركة عبر


إنشاء شهادة موقعة ذاتياً من Azure Application Gateway باستخدام مرجع مصدق جذر مخصص

يقدم Application Gateway v2 SKU استخدام الشهادات الجذر الموثوق بها للسماح باتصالات TLS مع الخوادم الخلفية. يزيل هذا الحكم استخدام شهادات المصادقة (شهادات طرفية فردية) المطلوبة في وحدة حفظ المخزون v1. الشهادة الجذر هي Base-64 مرمز X.509(. CER) تنسيق شهادة الجذر من خادم شهادة الخلفية. يعرف المرجع المصدق الجذر (CA) الذي أصدر شهادة الخادم ثم يتم استخدام شهادة الخادم لاتصال TLS/SSL.

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

إشعار

الشهادات التي تم إنشاؤها ذاتيا غير موثوق بها بشكل افتراضي وقد يكون من الصعب الحفاظ عليها. أيضا، قد يستخدمون مجموعات التجزئة والشفرات القديمة التي قد لا تكون قوية. للحصول على أمان أفضل، قم بشراء شهادة موقعة من قبل مرجع مصدق معروف.

يمكنك استخدام الخيارات التالية لإنشاء شهادتك الخاصة لاتصالات TLS الخلفية.

  1. استخدم أداة منشئ الشهادة الخاصة بنقرة واحدة. باستخدام اسم المجال (الاسم الشائع) الذي توفره، تنفذ هذه الأداة نفس الخطوات الموثقة في هذه المقالة لإنشاء شهادات الجذر والخادم. مع ملفات الشهادة التي تم إنشاؤها، يمكنك تحميل الشهادة الجذر (على الفور. CER) إلى إعداد الواجهة الخلفية للبوابة وسلسلة الشهادات المقابلة (. PFX) إلى الخادم الخلفي. يتم أيضا توفير كلمة المرور لملف PFX في ملف ZIP الذي تم تنزيله.

  2. استخدم أوامر OpenSSL لتخصيص وإنشاء الشهادات وفقا لاحتياجاتك. تابع اتباع الإرشادات الواردة في هذه المقالة إذا كنت ترغب في القيام بذلك بنفسك.

في هذا المقال، ستتعلم كيفية إجراء ما يلي:

  • إنشاء مرجع مصدق مخصص خاص بك
  • إنشاء شهادة موقعة ذاتيا موقعة من قبل المرجع المصدق المخصص
  • تحميل شهادة جذر موقعة ذاتيا إلى Application Gateway لمصادقة الخادم الخلفي

المتطلبات الأساسية

  • OpenSSL على كمبيوتر يعمل بنظام التشغيل Windows أو Linux

    بينما يمكن أن تكون هناك أدوات أخرى متاحة لإدارة الشهادات، يستخدم هذا البرنامج التعليمي OpenSSL. يمكنك العثور على OpenSSL مجمعة مع العديد من توزيعات Linux، مثل Ubuntu.

  • خادم ويب

    على سبيل المثال، Apache أو IIS أو NGINX لاختبار الشهادات.

  • An Application Gateway v2 SKU

    إذا لم يكن لديك بوابة تطبيق موجودة، فشاهد التشغيل السريع: حركة مرور الويب المباشرة باستخدام بوابة تطبيق Azure - مدخل Azure.

إنشاء شهادة CA جذرية

إنشاء شهادة المرجع المصدق الجذر باستخدام OpenSSL.

إنشاء المفتاح الجذر

  1. سجل الدخول إلى الكمبيوتر حيث تم تثبيت OpenSSL وقم بتشغيل الأمر التالي. يؤدي هذا إلى إنشاء مفتاح مشفر.

    openssl ecparam -out contoso.key -name prime256v1 -genkey
    

إنشاء شهادة الجذر وتوقيعها ذاتيا

  1. استخدم الأمر التالي لإنشاء طلب توقيع الشهادة (CSR).

    openssl req -new -sha256 -key contoso.key -out contoso.csr
    
  2. عند المطالبة، اكتب كلمة المرور للمفتاح الجذر والمعلومات التنظيمية للمرجع المصدق المخصص مثل البلد/المنطقة والولاية والمؤسسة والوحدة التنظيمية واسم المجال المؤهل بالكامل (هذا هو مجال المصدر).

    إنشاء شهادة الجذر

  3. استخدم الأمر التالي لإنشاء شهادة الجذر.

    openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
    

    تنشئ الأوامر السابقة شهادة الجذر. ستستخدم هذا لتوقيع شهادة الخادم.

إنشاء شهادة خادم

بعد ذلك، ستقوم بإنشاء شهادة خادم باستخدام OpenSSL.

إنشاء مفتاح الشهادة

استخدم الأمر التالي لإنشاء المفتاح لشهادة الخادم.

openssl ecparam -out fabrikam.key -name prime256v1 -genkey

إنشاء CSR (طلب توقيع الشهادة)

CSR هو مفتاح عام يتم منحه لمرجع مصدق عند طلب شهادة. يصدر المرجع المصدق الشهادة لهذا الطلب المحدد.

إشعار

يجب أن يكون CN (الاسم الشائع) لشهادة الخادم مختلفا عن مجال المصدر. على سبيل المثال، في هذه الحالة، CN للمصدر هو www.contoso.com و CN لشهادة الخادم هي www.fabrikam.com.

  1. استخدم الأمر التالي لإنشاء CSR:

    openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
    
  2. عند المطالبة، اكتب كلمة المرور للمفتاح الجذر والمعلومات التنظيمية للمرجع المصدق المخصص: البلد/المنطقة والولاية والمؤسسة والوحدة التنظيمية واسم المجال المؤهل بالكامل. هذا هو مجال الموقع الإلكتروني ويجب أن يكون مختلفا عن المصدر.

    شهادة الخادم

إنشاء الشهادة باستخدام CSR والمفتاح وتوقيعها باستخدام مفتاح جذر المرجع المصدق

  1. استخدم الأمر التالي لإنشاء الشهادة:

    openssl x509 -req -in fabrikam.csr -CA  contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
    

التحقق من الشهادة التي تم إنشاؤها حديثا

  1. استخدم الأمر التالي لطباعة إخراج ملف CRT والتحقق من محتواه:

    openssl x509 -in fabrikam.crt -text -noout
    

    التحقق من الشهادة

  2. تحقق من الملفات الموجودة في الدليل الخاص بك، وتأكد من أن لديك الملفات التالية:

    • contoso.crt
    • contoso.key
    • fabrikam.crt
    • fabrikam.key

تكوين الشهادة في إعدادات TLS لخادم الويب الخاص بك

في خادم الويب الخاص بك، قم بتكوين TLS باستخدام ملفات fabrikam.crt وملفات fabrikam.key. إذا تعذر على خادم الويب الخاص بك أخذ ملفين، يمكنك دمجهما في ملف .pem أو .pfx واحد باستخدام أوامر OpenSSL.

IIS

للحصول على إرشادات حول كيفية استيراد الشهادة وتحميلها كشهادة خادم على IIS، راجع كيفية: تثبيت الشهادات المستوردة على خادم ويب في Windows Server 2003.

للحصول على إرشادات ربط TLS، راجع كيفية إعداد SSL على IIS 7.

اباتشي

التكوين التالي هو مثال مضيف ظاهري تم تكوينه ل SSL في Apache:

<VirtualHost www.fabrikam:443>
      DocumentRoot /var/www/fabrikam
      ServerName www.fabrikam.com
      SSLEngine on
      SSLCertificateFile /home/user/fabrikam.crt
      SSLCertificateKeyFile /home/user/fabrikam.key
</VirtualHost>

إن جي إنكس

التكوين التالي هو مثال كتلة خادم NGINX مع تكوين TLS:

NGINX مع TLS

الوصول إلى الخادم للتحقق من التكوين

  1. أضف شهادة الجذر إلى مخزن الجذر الموثوق به لجهازك. عند الوصول إلى موقع الويب، تأكد من رؤية سلسلة الشهادات بأكملها في المتصفح.

    شهادات الجذر الموثوق بها

    إشعار

    من المفترض أنه تم تكوين DNS لتوجيه اسم خادم الويب (في هذا المثال، www.fabrikam.com) إلى عنوان IP لخادم الويب الخاص بك. إذا لم يكن الأمر كما هو، يمكنك تحرير ملف المضيفين لحل الاسم.

  2. استعرض للوصول إلى موقع الويب الخاص بك، وانقر فوق أيقونة القفل في مربع عنوان المستعرض للتحقق من معلومات الموقع والشهادة.

تحقق من التكوين باستخدام OpenSSL

أو يمكنك استخدام OpenSSL للتحقق من الشهادة.

openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts

التحقق من شهادة OpenSSL

تحميل الشهادة الجذر إلى إعدادات HTTP لبوابة التطبيق

لتحميل الشهادة في Application Gateway، يجب تصدير شهادة .crt إلى تنسيق .cer بترميز Base-64. نظرا لأن .crt يحتوي بالفعل على المفتاح العام بتنسيق base-64 المشفرة، ما عليك سوى إعادة تسمية ملحق الملف من .crt إلى .cer.

مدخل Azure

لتحميل شهادة الجذر الموثوق بها من المدخل، حدد إعدادات الواجهة الخلفية وحدد HTTPS في بروتوكول الواجهة الخلفية.

لقطة شاشة لإضافة شهادة باستخدام المدخل.

Azure PowerShell

أو يمكنك استخدام Azure CLI أو Azure PowerShell لتحميل الشهادة الجذر. التعليمات البرمجية التالية هي نموذج Azure PowerShell.

إشعار

يضيف النموذج التالي شهادة جذر موثوق بها إلى بوابة التطبيق، وينشئ إعداد HTTP جديدا ويضيف قاعدة جديدة، على افتراض أن تجمع الخلفية والمستمع موجودان بالفعل.

## Add the trusted root certificate to the Application Gateway

$gw=Get-AzApplicationGateway -Name appgwv2 -ResourceGroupName rgOne

Add-AzApplicationGatewayTrustedRootCertificate `
   -ApplicationGateway $gw `
   -Name CustomCARoot `
   -CertificateFile "C:\Users\surmb\Downloads\contoso.cer"

$trustedroot = Get-AzApplicationGatewayTrustedRootCertificate `
   -Name CustomCARoot `
   -ApplicationGateway $gw

## Get the listener, backend pool and probe

$listener = Get-AzApplicationGatewayHttpListener `
   -Name basichttps `
   -ApplicationGateway $gw

$bepool = Get-AzApplicationGatewayBackendAddressPool `
  -Name testbackendpool `
  -ApplicationGateway $gw

Add-AzApplicationGatewayProbeConfig `
  -ApplicationGateway $gw `
  -Name testprobe `
  -Protocol Https `
  -HostName "www.fabrikam.com" `
  -Path "/" `
  -Interval 15 `
  -Timeout 20 `
  -UnhealthyThreshold 3

$probe = Get-AzApplicationGatewayProbeConfig `
  -Name testprobe `
  -ApplicationGateway $gw

## Add the configuration to the HTTP Setting and don't forget to set the "hostname" field
## to the domain name of the server certificate as this will be set as the SNI header and
## will be used to verify the backend server's certificate. Note that TLS handshake will
## fail otherwise and might lead to backend servers being deemed as Unhealthy by the probes

Add-AzApplicationGatewayBackendHttpSettings `
  -ApplicationGateway $gw `
  -Name testbackend `
  -Port 443 `
  -Protocol Https `
  -Probe $probe `
  -TrustedRootCertificate $trustedroot `
  -CookieBasedAffinity Disabled `
  -RequestTimeout 20 `
  -HostName www.fabrikam.com

## Get the configuration and update the Application Gateway

$backendhttp = Get-AzApplicationGatewayBackendHttpSettings `
  -Name testbackend `
  -ApplicationGateway $gw

Add-AzApplicationGatewayRequestRoutingRule `
  -ApplicationGateway $gw `
  -Name testrule `
  -RuleType Basic `
  -BackendHttpSettings $backendhttp `
  -HttpListener $listener `
  -BackendAddressPool $bepool

Set-AzApplicationGateway -ApplicationGateway $gw

تحقق من صحة الواجهة الخلفية لبوابة التطبيق

  1. انقر فوق طريقة عرض Backend Health لبوابة التطبيق للتحقق مما إذا كان الفحص سليما.
  2. يجب أن ترى أن الحالة صحية لفحص HTTPS.

فحص HTTPS

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

لمعرفة المزيد حول SSL\TLS في بوابة التطبيق، راجع نظرة عامة على إنهاء TLS وTLS من طرف إلى طرف باستخدام بوابة التطبيق.