bg-tutorials

كيفية تثبيت شهادة SSL على Google Cloud Platform

يشرح هذا الدرس كيفية تثبيت شهادة SSL على Google Cloud Platform باستخدام Certificate Manager. ستتعلم أيضًا كيفية إنشاء CSR (Certificate Signing Request) لـ Google Cloud، وكيفية نشر الشهادة على load balancer من نوع HTTPS.

إنشاء رمز CSR على Google Cloud Platform

لا يمكنك طلب شهادة SSL دون رمز CSR. يشير CSR إلى Certificate Signing Request، وهو كتلة من النص المُرمّز يحتوي على تفاصيل مقدّم الطلب. تستخدم جهة إصدار الشهادات (Certificate Authority) رمز CSR للتحقق من نطاقك ومؤسستك قبل إصدار الشهادة.

لا يحتوي Google Cloud على نموذج مدمج ينشئ CSR لك، لذا يتعين عليك إنشاء CSR ومفتاحه الخاص باستخدام OpenSSL على جهازك الخاص. لديك خياران:

احتفظ بالمفتاح الخاص في مكان آمن. ستحتاج إليه مرة أخرى عند تحميل الشهادة إلى Certificate Manager. أرسل CSR إلى جهة إصدار الشهادات عند تقديم طلبك، وبعد إصدار الشهادة، تابع عملية التثبيت أدناه.

تثبيت شهادة SSL على Google Cloud Platform

في Google Cloud، تُسمى الشهادة الصادرة من طرف ثالث (والمُقدَّمة من قِبلك) شهادة يديرها المستخدم بذاته (self-managed certificate). تقوم بتحميلها إلى Certificate Manager، ثم نشرها على load balancer من نوع HTTPS. قبل أن تبدأ، تأكد من أن لديك:

  • ملفات شهادتك الموقّعة من جهة إصدار الشهادات.
  • المفتاح الخاص الذي أنشأته مع CSR.
  • الوصول إلى Google Cloud Console وأداة سطر الأوامر gcloud.
  • load balancer من نوع HTTPS موجود مسبقًا (Application Load Balancer خارجي مع target HTTPS proxy) يخدم نطاقك. سيتم ربط الشهادة بهذا load balancer.

الخطوة 1: تحضير ملفات الشهادة

بعد أن تتحقق جهة إصدار الشهادات من طلبك، سترسل إليك بريدًا إلكترونيًا يحتوي على أرشيف ZIP. استخرج محتوياته وابحث عن:

  • yourdomain.crt، شهادة الخادم الخاصة بك.
  • yourdomain.ca-bundle، الشهادات الوسيطة.
  • yourdomain.key، المفتاح الخاص الذي أنشأته مع CSR.

الخطوة 2: دمج الشهادة والسلسلة

يتوقع Certificate Manager وجود ملف PEM واحد يحتوي أولًا على شهادة الخادم، ثم الشهادات الوسيطة، بهذا الترتيب. افتح موجّه أوامر (terminal) في المجلد الذي تُخزَّن فيه ملفاتك ونفّذ:

cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt

ينشئ هذا ملفًا بصيغة PEM يحتوي على شهادتك والسلسلة الوسيطة بالترتيب الصحيح. يجب أن يبدأ ملف الشهادة بـ —–BEGIN CERTIFICATE—– وينتهي بـ —–END CERTIFICATE—–.

الآن تحقق من المفتاح الخاص. يتطلب Certificate Manager أن يكون:

  • بصيغة PEM وغير مشفّر (بدون عبارة مرور).
  • بصيغة PKCS#8، بحيث يبدأ بـ —–BEGIN PRIVATE KEY—–، وليس —–BEGIN RSA PRIVATE KEY—–.
  • من نوع RSA (بحجم 2048 أو 3072 أو 4096 بت) أو ECDSA (P-256 أو P-384).

إذا كان مفتاحك يبدأ بـ —–BEGIN RSA PRIVATE KEY—– (بصيغة PKCS#1)، حوّله إلى صيغة PKCS#8 التي يقبلها Certificate Manager:

openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key

استخدم الملف الناتج yourdomain_pkcs8.key في خطوات التحميل أدناه. إذا كان مفتاحك محميًا بعبارة مرور، سيطلب منك هذا الأمر أيضًا إدخال عبارة المرور ويكتب نسخة غير مشفّرة.

الخطوة 3: تحميل الشهادة إلى Certificate Manager

يمكنك تحميل الشهادة التي يديرها المستخدم بذاته من Console أو باستخدام gcloud. استخدم الطريقة التي تفضّلها؛ فالنتيجة هي نفس مورد Certificate Manager.

الخيار أ، Google Cloud Console:

  1. سجّل الدخول إلى Google Cloud Console واختر مشروعك.
  2. افتح Certificate Manager (تحت قسم Security، في منطقة Network Security)، ثم اختر تبويب Certificates.
  3. اختر Add Certificate.
  4. أعطِ الشهادة اسمًا، ثم اختر لـ Certificate type خيار Create self-managed certificate.
  5. لخانة Location، اختر Global مع Scope Default إذا كان load balancer عالميًا، أو Regional ومنطقتك إذا كان load balancer إقليميًا.
  6. قم بتحميل fullchain.crt كشهادة، والمفتاح الخاص بصيغة PKCS#8 كمفتاح خاص، ثم اختر Create.

الخيار ب، gcloud CLI: إنشاء الشهادة نفسها بأمر واحد. استبدل MY_CERT بالاسم الذي تختاره:

gcloud certificate-manager certificates create MY_CERT 
  --certificate-file=fullchain.crt 
  --private-key-file=yourdomain_pkcs8.key

بأي طريقة، تصبح الشهادة الآن موجودة في Certificate Manager، ولكنها غير مرتبطة بأي حركة بيانات حتى الآن. الخطوة التالية تتولى نشرها.

الخطوة 4: نشر الشهادة على load balancer الخاص بك

يقوم Certificate Manager بنشر الشهادة من خلال certificate map. تقوم بإنشاء خريطة (map)، وإضافة إدخال يوجّه اسم مضيف (hostname) نحو شهادتك، ثم ربط الخريطة بـ target HTTPS proxy الخاص بـ load balancer. نفّذ هذه الأوامر باستخدام gcloud.

أنشئ certificate map:

gcloud certificate-manager maps create MY_MAP

أضف إدخالًا في الخريطة لاسم المضيف الخاص بك. استبدل MY_CERT باسم الشهادة التي رفعتها وyourdomain.com بالنطاق الذي تريد تأمينه:

gcloud certificate-manager maps entries create my-entry 
  --map=MY_MAP 
  --certificates=MY_CERT 
  --hostname=yourdomain.com

اربط الخريطة بـ target HTTPS proxy الموجود مسبقًا. استبدل MY_PROXY باسم البروكسي الذي يخدم load balancer الخاص بك:

gcloud compute target-https-proxies update MY_PROXY 
  --certificate-map=MY_MAP 
  --global

أزل خيار --global وأضف --region=YOUR_REGION إذا كان load balancer إقليميًا. الآن يقدّم load balancer شهادتك لحركة بيانات HTTPS الواردة إلى ذلك اسم المضيف. قد تستغرق تغييرات الشهادة بضع دقائق للانتشار عبر load balancer.

اختبار تثبيت SSL

بعد نشر الشهادة، تحقق من أن load balancer يقدّمها بشكل صحيح وأن السلسلة مكتملة. من أي جهاز يحتوي على OpenSSL، اتصل بنطاقك واقرأ الشهادة التي يُعيدها:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

يطبع هذا الأمر جهة الإصدار (issuer)، والموضوع (subject)، وتواريخ صلاحية الشهادة المستخدمة حاليًا. للحصول على تقرير كامل عن الشهادة وإعداداتها، بما في ذلك فحص السلسلة والبروتوكول، مرّر نطاقك عبر أداة SSL Checker الخاصة بنا، أو افتح الموقع في متصفح وتحقق من رمز القفل.

الأسئلة الشائعة

هل يمكنني إنشاء CSR مباشرة في Google Cloud؟

لا. لا يحتوي Google Cloud على نموذج في لوحة التحكم يُنشئ CSR أو مفتاحًا خاصًا لشهادة يديرها المستخدم بذاته. أنت تنشئ CSR والمفتاح باستخدام OpenSSL على جهازك الخاص (أو باستخدام مولّد CSR الخاص بنا)، وتطلب الشهادة، ثم تحمّل الشهادة الصادرة والمفتاح الخاص إلى Certificate Manager.

ما الفرق بين الشهادة التي يديرها المستخدم بذاته والشهادة التي تديرها Google؟

الشهادة التي يديرها المستخدم بذاته هي شهادة تحصل عليها من جهة إصدار الشهادات وتقوم بتحميلها بنفسك، وأنت المسؤول عن تجديدها. أما الشهادة التي تديرها Google فيتم إصدارها وتجديدها تلقائيًا بواسطة Google. يتناول هذا الدرس الشهادات التي يديرها المستخدم بذاته، وهي المسار الذي تستخدمه للشهادة المدفوعة من SSL Dragon.

لماذا يرفض Certificate Manager مفتاحي الخاص؟

السبب الأكثر شيوعًا هو صيغة المفتاح. يحتاج Certificate Manager إلى مفتاح PKCS#8 غير مشفّر يبدأ بـ —–BEGIN PRIVATE KEY—–. إذا كان مفتاحك يبدأ بـ —–BEGIN RSA PRIVATE KEY—– أو محميًا بعبارة مرور، حوّله باستخدام openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key وحمّل الملف المحوَّل.

قمت بتحميل الشهادة ولكن الموقع لا يزال يظهر “غير آمن”. لماذا؟

تحميل الشهادة إلى Certificate Manager يقوم فقط بتخزينها. لا تخدم أي حركة بيانات حتى تقوم بنشرها. أنشئ certificate map، وأضف إدخالًا في الخريطة لاسم المضيف الخاص بك، واربط الخريطة بـ target HTTPS proxy الخاص بـ load balancer (الخطوة 4). حتى يتم ربط الخريطة، لا يقدّم load balancer شهادتك.

بأي ترتيب يجب أن يكون ملف الشهادة؟

تأتي شهادة الخادم (leaf) الخاصة بك أولًا، تليها الشهادات الوسيطة، في ملف PEM واحد. الأمر cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt ينتج هذا الترتيب. غياب السلسلة أو ترتيبها الخاطئ هو سبب شائع لظهور مسار شهادة غير مكتمل في المتصفحات وأدوات فحص SSL.

وفِّر 10% على شهادات SSL عند الطلب اليوم!

إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

صورة مفصلة لتنين أثناء طيرانه

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