إنشاء شهادة موقعة ذاتياً من Azure Application Gateway باستخدام مرجع مصدق جذر مخصص
يقدم Application Gateway v2 SKU استخدام الشهادات الجذر الموثوق بها للسماح باتصالات TLS مع الخوادم الخلفية. يزيل هذا الحكم استخدام شهادات المصادقة (شهادات طرفية فردية) المطلوبة في وحدة حفظ المخزون v1. الشهادة الجذر هي شهادة جذر بتنسيق X.509(.CER) بترميز Base-64 من خادم شهادة الواجهة الخلفية. يحدد المرجع المصدق الجذر (CA) الذي أصدر شهادة الخادم ثم يتم استخدام شهادة الخادم لاتصال TLS/SSL.
تثق بوابة التطبيق في شهادة موقع الويب الخاص بك بشكل افتراضي إذا كانت موقعة من قِبل مرجع مصدق معروف (على سبيل المثال، GoDaddy أو DigiCert). لا تحتاج إلى تحميل شهادة الجذر بشكل صريح في هذه الحالة. لمزيد من المعلومات، راجع نظرة عامة على إنهاء TLS وطبقة النقل الآمنة (TLS) من طرف إلى طرف مع بوابة التطبيق. ومع ذلك، إذا كانت لديك بيئة تطوير/اختبار ولا تريد شراء شهادة موقعة من المرجع المصدق تم التحقق منها، يمكنك إنشاء المرجع المصدق الجذر المخصص الخاص بك وشهادة طرفية موقعة من قبل المرجع المصدق الجذر هذا.
إشعار
الشهادات التي تم إنشاؤها ذاتيا غير موثوق بها بشكل افتراضي، وقد يكون من الصعب الحفاظ عليها. أيضاً، قد يستخدمون مجموعات تجزئة وتشفير قديمة قد لا تكون قوية. للحصول على أمان أفضل، قم بشراء شهادة موقعة من مرجع مصدق معروف.
يمكنك استخدام الخيارات التالية لإنشاء شهادتك الخاصة لاتصالات TLS الخلفية.
استخدم أداة منشئ الشهادة الخاصة بنقرة واحدة. باستخدام اسم المجال (الاسم الشائع) الذي توفره، تنفذ هذه الأداة نفس الخطوات الموثقة في هذه المقالة لإنشاء شهادات الجذر والخادم. مع ملفات الشهادة التي تم إنشاؤها، يمكنك تحميل الشهادة الجذر (على الفور. CER) إلى إعداد الواجهة الخلفية للبوابة وسلسلة الشهادات المقابلة (. PFX) إلى الخادم الخلفي. يتم أيضا توفير كلمة المرور لملف PFX في ملف ZIP الذي تم تنزيله.
استخدم أوامر OpenSSL لتخصيص وإنشاء الشهادات وفقا لاحتياجاتك. تابع اتباع الإرشادات الواردة في هذه المقالة إذا كنت ترغب في القيام بذلك بنفسك.
في هذا المقال، ستتعلم كيفية إجراء ما يلي:
- قم بإنشاء المرجع المصدق المخصص الخاص بك
- قم بإنشاء شهادة موقعة ذاتياً موقعة من قِبل المرجع المصدق المخصص الخاص بك
- قم بتحميل شهادة جذر موقعة ذاتياً إلى بوابة التطبيق لمصادقة خادم الواجهة الخلفية
المتطلبات الأساسية
OpenSSL على جهاز كمبيوتر يعمل بنظام التشغيل Windows أو Linux
بينما قد تكون هناك أدوات أخرى متاحة لإدارة الشهادات، يستخدم هذا البرنامج التعليمي OpenSSL. يمكنك العثور على OpenSSL مجمّعاً مع العديد من توزيعات Linux، مثل Ubuntu.
خادم ويب
على سبيل المثال، Apache أو IIS أو NGINX لاختبار الشهادات.
Application Gateway v2 SKU
إذا لم يكن لديك بوابة تطبيق حالية، فراجع بداية سريعة: حركة مرور الويب المباشرة باستخدام Azure Application Gateway - مدخل Microsoft Azure.
إنشاء شهادة CA جذرية
أنشئ شهادة CA الجذر الخاصة بك باستخدام OpenSSL.
إنشاء مفتاح الجذر
قم بتسجيل الدخول إلى جهاز الكمبيوتر الخاص بك حيث تم تثبيت OpenSSL وقم بتشغيل الأمر التالي. يؤدي هذا إلى إنشاء مفتاح مشفر.
openssl ecparam -out contoso.key -name prime256v1 -genkey
إنشاء شهادة الجذر والتوقيع الذاتي عليها
استخدم الأمر التالي لإنشاء طلب توقيع الشهادة (CSR).
openssl req -new -sha256 -key contoso.key -out contoso.csr
عند المطالبة، اكتب كلمة المرور للمفتاح الجذر والمعلومات التنظيمية للمرجع المصدق المخصص مثل البلد / المنطقة والولاية والمؤسسة والوحدة التنظيمية واسم المجال المؤهل بالكامل (هذا هو مجال المُصدر).
استخدم الأمر التالي لإنشاء شهادة الجذر.
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 هو مفتاح عام يتم منحه إلى CA عند طلب شهادة. يصدر المرجع المصدق الشهادة لهذا الطلب المحدد.
إشعار
يجب أن يكون CN (الاسم الشائع) لشهادة الخادم مختلفاً عن مجال المُصدر. على سبيل المثال، في هذه الحالة، يكون CN للمُصدر هو www.contoso.com
ورقم CN لشهادة الخادم هو www.fabrikam.com
.
استخدم الأمر التالي لإنشاء CSR:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
عند المطالبة، اكتب كلمة المرور للمفتاح الجذر والمعلومات التنظيمية لـ CA المخصص: البلد / المنطقة، والولاية، والمؤسسة، والوحدة التنظيمية، واسم المجال المؤهل بالكامل. هذا هو مجال موقع الويب ويجب أن يكون مختلفاً عن المُصدر.
قم بإنشاء الشهادة باستخدام CSR والمفتاح وقم بتوقيعها باستخدام مفتاح الجذر الخاص بـ CA
استخدم الأمر التالي لإنشاء الشهادة:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
تحقق من الشهادة التي تم إنشاؤها حديثاً
استخدم الأمر التالي لطباعة إخراج ملف CRT والتحقق من محتواه:
openssl x509 -in fabrikam.crt -text -noout
تحقق من الملفات في دليلك، وتأكد من أن لديك الملفات التالية:
- 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.
Apache
التكوين التالي هو مثال على مضيف ظاهري تم تكوينه لـ 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
التكوين التالي هو مثال على كتلة خادم NGINX بتكوين TLS:
قم بالوصول إلى الخادم للتحقق من التكوين
أضف شهادة الجذر إلى مخزن الجذر الموثوق به لجهازك. عند الوصول إلى موقع الويب، تأكد من رؤية سلسلة الشهادات بالكامل في المتصفح.
إشعار
من المفترض أنه تم تكوين DNS لتوجيه اسم خادم الويب (في هذا المثال،
www.fabrikam.com
) إلى عنوان IP لخادم الويب الخاص بك. إذا لم يكن كذلك، يمكنك تحرير ملف المضيفين لتحليل الاسم.استعرض للوصول إلى موقع الويب الخاص بك، وانقر فوق رمز القفل في مربع عنوان المستعرض الخاص بك للتحقق من معلومات الموقع والشهادة.
تحقق من التكوين باستخدام OpenSSL
أو يمكنك استخدام OpenSSL للتحقق من الشهادة.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
قم بتحميل شهادة الجذر إلى إعدادات HTTP الخاصة بـ Application Gateway
لتحميل الشهادة في 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
تحقق من صحة الواجهة الخلفية لبوابة التطبيق
- انقر فوق عرض Backend Health لبوابة التطبيق للتحقق مما إذا كان المسبار سليماً أم لا.
- يجب أن ترى أن الحالة Healthy لفحص HTTPS.
الخطوات التالية
لمعرفة المزيد حول SSL \ TLS في Application Gateway، راجع نظرة عامة على إنهاء TLS وTLS نهاية إلى نهاية مع بوابة التطبيق.