في هذا البرنامج التعليمي، ستتعلم كيفية تثبيت شهادة SSL في AWS (Amazon Web Services). في AWS لا تُثبّت الشهادة على خادم واحد كما تفعل مع Apache أو Nginx. بل تستورد الشهادة مرة واحدة إلى مخزن الشهادات، ثم تربطها بخدمة مُدارة (موزع تحميل، أو CloudFront، أو API Gateway) تتولى إنهاء اتصال TLS نيابةً عنك. يغطي هذا الدليل AWS Certificate Manager (ACM)، ومخزن شهادات IAM القديم، وElastic Load Balancing (ELB).
قبل التثبيت، يجب عليك إنشاء طلب توقيع الشهادة (CSR) وإرساله إلى جهة إصدار الشهادات للحصول على الموافقة. إذا لم تكمل هذه الخطوة بعد، ابدأ بالجزء الأول من هذا البرنامج التعليمي. وإذا كانت لديك ملفات شهادة SSL جاهزة، انتقل مباشرة إلى دليل التثبيت أدناه.
كيفية إنشاء رمز CSR في AWS
عند التقديم للحصول على شهادة SSL، من الخطوات الأساسية تقديم رمز CSR إلى مزود SSL الخاص بك، والذي يُعرف أيضًا بجهة إصدار الشهادات. يحتوي CSR على معلومات مُرمّزة عن اسم نطاقك ومؤسستك. لا يمكنك الحصول على شهادة SSL موقّعة دون تقديم هذا الرمز. أمامك خياران:
- استخدم مولّد CSR الخاص بنا لإنشاء CSR تلقائيًا.
- أنشئ CSR يدويًا. الخيار الأفضل هو إنشاء CSR على نفس الخادم الذي ستعمل عليه شهادة SSL. اختر البرنامج التعليمي المناسب لمنصتك:
إذا كان لديك فقط موزع تحميل بدون خادم ويب أصلي لتشغيل الأمر عليه، يمكنك إنشاء CSR والمفتاح الخاص باستخدام أداة OpenSSL:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
ملاحظة: استبدل yoursite باسم النطاق الذي تريد تأمينه. ينشئ هذا الأمر أيضًا مفتاحك الخاص (yoursite.key)؛ احتفظ به في مكان آمن، لأنك ستحتاجه لاحقًا لاستيراد الشهادة.
بعد تشغيل الأمر، يكتب OpenSSL طلب CSR في ملف example.csr. افتح هذا الملف وانسخ الكتلة كاملة، بما في ذلك السطرين —–BEGIN CERTIFICATE REQUEST—– و—–END CERTIFICATE REQUEST—–. ستلصق هذا الرمز عند تفعيل شهادة SSL الخاصة بك.
تحضير جميع ملفات الشهادة
قبل البدء بالتثبيت، تأكد من أن جميع ملفات الشهادة اللازمة متوفرة لديك. بعد أن توقّع جهة إصدار الشهادات شهادة SSL الخاصة بك، ترسل ملفات التثبيت إلى بريدك الوارد. إليك ما تحتاجه:
- ملف الشهادة الأساسية، الصادر لاسم النطاق الذي تريد تأمينه.
- حزمة CA (سلسلة الشهادات الوسيطة) من جهة إصدار الشهادات.
- مفتاحك الخاص.
تصلك شهادة SSL وحزمة CA ضمن الأرشيف المضغوط (ZIP) الذي أرسلته جهة إصدار الشهادات. أما المفتاح الخاص فهو الذي أنشأته مع رمز CSR الخاص بك؛ ويبقى في نفس المكان الذي أنشأت فيه CSR.
الأمر الأخير الذي يجب التحقق منه هو تنسيق ملفاتك. يقبل ACM و IAM فقط الملفات المُرمّزة بصيغة PEM، لذا تأكد من أن شهادتك وسلسلة الشهادات ومفتاحك الخاص جميعها بصيغة PEM. PEM هو تنسيق نصي يمكن أن يحمل عدة امتدادات ملفات (.pem، .key، .cer، .crt، وغيرها)؛ يبدأ ملف PEM بسطر مثل —–BEGIN CERTIFICATE—–. يجب أن يكون المفتاح الخاص غير مشفّر: يرفض ACM أي مفتاح محمي بكلمة مرور أو عبارة سرية.
إذا استلمت ملفاتك بتنسيق آخر، مثل PFX/PKCS#12، حوّلها إلى PEM أولًا. يمكنك القيام بذلك باستخدام أوامر OpenSSL. بعد أن تصبح ملفاتك بصيغة PEM، تكون جاهزًا لتثبيت شهادتك.
تثبيت شهادة SSL في AWS Certificate Manager (ACM)
يُعد ACM المكان المُوصى به لتخزين الشهادات الخاصة بالخدمات المُدارة في AWS. يمكنك استيراد شهادتك الخارجية عبر لوحة التحكم أو واجهة سطر الأوامر (CLI).
الخيار أ: الاستيراد عبر لوحة تحكم ACM
- افتح لوحة تحكم AWS وانتقل إلى Certificate Manager. تأكد من أنك في المنطقة (Region) الصحيحة (في الزاوية العلوية اليمنى). استورد الشهادة في نفس المنطقة التي تستخدمها الخدمة. بالنسبة لـCloudFront، استخدم US East (N. Virginia)، us-east-1.
- اختر Import certificate.
- في حقل Certificate body، ألصق شهادتك الأساسية (الكتلة التي تبدأ بـ —–BEGIN CERTIFICATE—–).
- في حقل Certificate private key، ألصق مفتاحك الخاص غير المشفّر (الكتلة التي تبدأ بـ —–BEGIN PRIVATE KEY—– أو —–BEGIN RSA PRIVATE KEY—–).
- في حقل Certificate chain، ألصق حزمة CA الخاصة بك (الشهادات الوسيطة).
- اختر Next، وأضف أي علامات (tags) إن رغبت، ثم اختر Import.
الخيار ب: الاستيراد باستخدام AWS CLI
شغّل الأمر أدناه لرفع شهادتك إلى ACM. لاحظ البادئة fileb://: فهي تُخبر واجهة CLI بقراءة كل ملف كبايتات خام، وهو ما يتوقعه ACM.
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
ملاحظة: استبدل كل اسم ملف example بالاسم الفعلي لملفك. إذا نجح الاستيراد، تُعيد واجهة CLI رمز ARN (Amazon Resource Name) للشهادة. تحتاج إلى هذا المُعرّف لربط الشهادة بخدمة ما. إليك القائمة الكاملة لأوامر ACM لمزيد من إدارة شهادتك.
تحذيرات مهمة:
- الشهادات المستوردة لا تُجدَّد تلقائيًا. يجدد ACM تلقائيًا فقط الشهادات التي يُصدرها بنفسه. أنت مسؤول عن تتبّع تاريخ انتهاء صلاحية الشهادة المستوردة وإعادة استيراد شهادة جديدة قبل انتهائها (توصي AWS بذلك قبل 24 ساعة على الأقل من الانتهاء). إعادة الاستيراد إلى نفس شهادة ACM تحفظ ارتباطات الخدمة الحالية، فيستمر موزع التحميل أو التوزيع باستخدامها دون تغييرات إضافية.
- المنطقة (Region) مهمة. شهادة ACM إقليمية. استوردها في نفس المنطقة التي يستخدمها موزع التحميل أو الخدمة. لا يقبل CloudFront إلا الشهادات من us-east-1.
تثبيت شهادة SSL في AWS IAM (الطريقة القديمة)
يُعد مخزن شهادات IAM الطريقة القديمة، وتنصح AWS باستخدام ACM في عمليات النشر الجديدة. استخدم IAM فقط عندما لا تدعم خدمة أو منطقة ما ACM، أو عندما تحتاج على وجه التحديد إلى مخزن IAM (على سبيل المثال، بعض إعدادات CloudFront، حيث يجب أن يبدأ المسار بـ/cloudfront/). ارفع الشهادة إلى IAM باستخدام:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
استبدل القيم كما هو موضح أدناه:
- –server-certificate-name: اسم مخصص يسهل تذكره، على سبيل المثال اسم نطاقك. استخدم فقط الحروف والأرقام (الكبيرة والصغيرة)؛ لا يُسمح بالمسافات.
- –certificate-body: اسم ملف شهادة SSL الأساسية الخاصة بك.
- –certificate-chain: اسم ملف حزمة CA الخاصة بك.
- –private-key: اسم ملف مفتاحك الخاص.
يجب أن تكون الشهادة والمفتاح الخاص والسلسلة جميعها مُرمّزة بصيغة PEM، ويجب أن يتطابق المفتاح الخاص مع الشهادة. إذا نجح الرفع، تُعيد واجهة CLI بيانات وصفية عن شهادة الخادم، تشمل مساره واسمه ومعرّفه (ID) ورمز ARN وتاريخ الرفع وتاريخ الانتهاء. لمزيد من المساعدة حول إدارة SSL واستكشاف الأخطاء وإصلاحها، راجع دليل Amazon الرسمي.
ربط الشهادة في ELB (Elastic Load Balancing)
استيراد الشهادة إلى ACM أو IAM لا يُفعّلها بعد. تصبح الشهادة نشطة فقط عندما تربط رمز ARN الخاص بها بخدمة ما. يفترض هذا القسم أنك قد استوردت الشهادة مسبقًا وتريد إنشاء أو تحديث مستمعي HTTPS على موزع تحميل موجود. ستحتاج إلى رمز ARN لشهادتك واسم أو رمز ARN لموزع التحميل.
موزع التحميل الكلاسيكي (Classic Load Balancer)
استخدم الأمر أدناه لإنشاء مستمع HTTPS على موزع تحميل كلاسيكي وربط الشهادة به:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
استبدل ARN برمز ARN لشهادتك من ACM أو IAM. إذا كان لديك مستمع HTTPS موجود مسبقًا وتريد فقط استبدال الشهادة بشهادة جديدة، استخدم:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
استبدل NewARN برمز ARN للشهادة الجديدة. إليك النطاق الكامل لأوامر ELB، ودليل Amazon الرسمي حول مستمعي HTTPS لموزع التحميل الكلاسيكي.
موزع تحميل التطبيقات (Application Load Balancer)
شغّل الأمر التالي لإنشاء مستمع HTTPS على موزع تحميل تطبيقات. تُحدد قيمة –ssl-policy أدناه سياسة أمان تدعم TLS 1.3 وTLS 1.2:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
يمكنك العثور على قيمتي my-load-balancer-arn وmy-target-group-arn بتشغيل:
aws elbv2 describe-target-groups
يعرض هذا موزعات التحميل ومجموعات الأهداف ذات الصلة في حسابك. لإضافة شهادة جديدة إلى مستمع HTTPS موجود، استخدم:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
يمكنك العثور على قيمة my-https-listener-arn باستخدام:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
راجع مرجع أوامر elbv2 لمزيد من إدارة موزع تحميل التطبيقات الخاص بك.
اختبار تثبيت SSL الخاص بك
تصفّح نسخة HTTPS من نطاقك وتحقق من وجود رمز القفل. اضغط عليه لتفقّد تفاصيل الشهادة. لإجراء اختبار أعمق، استخدم SSL Checker الخاص بنا: فهو يفحص تثبيتك وينشئ تقريرًا فوريًا. يمكنك أيضًا تأكيد الشهادة من سطر الأوامر:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
يعرض هذا الأمر جهة إصدار الشهادة وتواريخ صلاحيتها التي يقدمها موزع التحميل. إذا استوردت شهادة جديدة ولكنك لا تزال ترى القديمة، تأكد من أن المستمع يشير إلى رمز ARN الجديد وأنك تختبر المنطقة والنقطة النهائية الصحيحتين.
الأسئلة الشائعة
لا تُثبّتها على خادم واحد. تستورد الشهادة إلى AWS Certificate Manager (ACM)، ثم تربط رمز ARN الناتج بخدمة مُدارة تُنهي اتصال TLS، مثل موزع تحميل تطبيقات أو موزع تحميل كلاسيكي، أو توزيع CloudFront، أو نطاق مخصص لـAPI Gateway.
لا. يجدد ACM تلقائيًا فقط الشهادات التي يُصدرها بنفسه. يجب إعادة إصدار الشهادة الخارجية المستوردة وإعادة استيرادها قبل انتهاء صلاحيتها. إعادة الاستيراد إلى نفس شهادة ACM تحفظ ارتباطاتها بالخدمة، فيستمر موزع التحميل في تقديم الشهادة المُجدّدة دون تغييرات إضافية.
استخدم ACM. مخزن شهادات IAM هو طريقة قديمة تحتفظ بها AWS بشكل أساسي للتوافق مع الأنظمة السابقة وللحالات التي لا يغطيها ACM. بالنسبة لمعظم الإعدادات، بما في ذلك موزعات التحميل وCloudFront، يُعد ACM الخيار المُوصى به.
السبب الأكثر شيوعًا هو أن المفتاح مشفّر. يقبل ACM فقط مفتاحًا خاصًا غير مشفّر ومُرمّزًا بصيغة PEM يتطابق مع الشهادة. أزل العبارة السرية أولًا، ثم استورد. تأكد من أن الأجزاء الثلاثة (الشهادة والسلسلة والمفتاح) جميعها مُرمّزة بصيغة PEM.
استوردها في نفس المنطقة التي يستخدمها موزع التحميل أو الخدمة، لأن شهادات ACM إقليمية. أما CloudFront فهو الاستثناء: فهو لا يقبل إلا الشهادات المستوردة إلى US East (N. Virginia)، us-east-1.
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10


