
تخصيص هل تستخدم TLS إصدار أقدم من 1.2؟ لا بأس، فالتأخير في تحديثات الصيانة يحدث للجميع. نحن نفهم ذلك. ومع ذلك، حان الوقت للمضي قدمًا.
هل تستخدم TLS أقدم من 1.2؟ لا بأس، تأخيرات تحديث الصيانة تحدث للجميع. نحن نفهم ذلك. ومع ذلك، حان الوقت للمضي قدماً.
هل تتذكر عندما أوقفنا استخدام TLS 1.0 في يونيو 2018؟ إذا لم تتذكر، لا بأس، يمكنك قراءة كل ذلك في هذا المنشور. حسناً، هنا نحن الآن، بعد عامين، والنسخة التالية على وشك أن تصبح غير مدعومة لذلك نريدك أن تكون مستعداً وتجنب أي انقطاعات في الخدمة. يهدف هذا المنشور إلى تحضيرك للعمل بدون استخدام TLS1.1 حتى نتمكن من تقييد الوصول إلى TLS1.2 فقط. سنرشدك خلال كيفية التحقق من نسختك الحالية وكيفية الترقية إلى الأحدث. فقط للمرح، نود حقاً سماع ملاحظاتك وإضافتك إلى "جدار الروعة" الذي يضم جميع الشركات الواعيات بالأمان التي تقوم بالتغيير مبكراً.
هل يؤثر ذلك علي؟
في عام 2018، طلبنا من عملائنا الترقية، وكان توصية استخدام TLS 1.2 موجودة لبعض الوقت، لذا فمن المحتمل جدًا أنك لسْتَ متأثرًا. ومع ذلك، إذا كنت تستخدم أي طريقة لحقن الرسائل (مثل SMTP أو REST API) أو جمع البيانات (مثل metrics أو webhooks، إلخ)، فعليك حقًا التحقق الآن للتأكد من أن نظامك يمكنه دعم TLS 1.2. تأكد من إجراء الاختبارات التالية على الخوادم التي تتصل فعليًا بـSparkPost.
لماذا هو مهم
لماذا الآن؟
في الواقع، يجب أن يكون السؤال “لماذا لا تزال تدعمه؟” TLS 1.2 كان المعيار الآمن الموصى به لأكثر من عقد من الزمن ونحن الآن على وشك أن يصبح الدعم لأي شيء أقل من TLS1.2 من الماضي أقل من TLS1.2. حان الوقت لـ دعم HTTPS الضعيف أن ينتهي مرة واحدة وإلى الأبد. إذا كنت لا تزال تستخدم TLS 1.1 بعد مارس 2020، فسوف تجد صعوبة في الاتصال بمعظم الخدمات. لقد قدمت SparkPost مجالًا كافيًا لتحديث هذا والآن نقوم بإرسال الإشعارات النهائية لتحديثه قبل سبتمبر، عندما ننهيه نهائيًا.
لكن كيف، أصلحك الله، يمكنك إصلاح ذلك؟
من المحتمل جداً أن يكون مسؤول النظام أو مسؤول الموقع قد قام بالفعل بهذا الأمر كجزء من الصيانة العادية الخاصة بهم. إذا كان الأمر كذلك، ينبغي عليك شراء بيرة لهم وقول شكراً لك. إذا لم يكن الأمر كذلك، يمكنك اتباع بعض الخطوات أدناه لإنجاز ذلك في لينكس، ويندوز، وماك.
يرجى ملاحظة أنه طوال هذه الوثيقة سنقوم بإجراء الاختبارات باستخدام نقطة النهاية الخاصة بـSparkPost في الولايات المتحدة
إذا كنت تستخدم عادةً النشر الأوروبي، ينبغي عليك استخدام نقطة النهاية في الاتحاد الأوروبي بدلاً من ذلك.
كيف يمكنك التحقق؟ (الإصدار Linux)
أولاً، لنتحقق مما إذا كان مسؤول النظام اللطيف في حيك قد قام بالفعل بالتعامل مع هذا الأمر نيابة عنك. في الواقع، هذا جزء من إعداد SSL لذا يمكن إدارته في إعداد نظامك. بافتراض أنك تستخدم Linux، فإن الطريقة الأكثر وصفية هي استخدام nmap ولكن يمكنك أيضًا استخدام openssl. يمكنك استخدام nmap مع Linux وWindows وMac، لكننا سنستكشف أيضاً طرقاً أخرى لـ Windows وMac إذا كنت لا ترغب في تثبيت برنامج جديد.
للقيام بذلك باستخدام nmap، اختبر الشفرات مقابل مضيف HTTPS معروف. نظراً لأن الهدف هو التأكد من أننا نتصل بـ SparkPost بأمان، فلنختبر ضد تلك النقطة النهائية. تأكد من تشغيلك للاختبارات التالية على الخوادم التي تتصل بالفعل بـ SparkPost.
nmap --script ssl-enum-ciphers -p 443 api.sparkpost.com
تم إجراء ذلك على خادم التطوير الخاص بي ويمكنك أن ترى بسهولة أن الإعداد الخاص بي يدعم TLS 1.1 و1.2 ولكن ليس 1.3. من المهم ملاحظة أنه في هذه المرحلة لا تدعم اتصالات SparkPost وAWS ALBs TLS1.3 بعد، لكنه موجود في خطة AWS المستقبلية.
بدء Nmap 6.40 ( http://nmap.org ) في 2020-05-06 22:41 UTC تقرير مسح Nmap ل api.sparkpost.com (52.13.246.255) المضيف متاح (زمن انتقال 0.00059 ثانية). عناوين أخرى لـ api.sparkpost.com (لم يتم مسحها): 34.211.102.211 52.43.22.201 54.213.185.174 100.20.154.199 52.43.110.79 52.40.215.39 52.40.175.169 سجل rDNS لـ 52.13.246.255: ec2-52-13-246-255.us-west-2.compute.amazonaws.com الحالة PORT الخدمة 443/tcp مفتوح https | ssl-enum-ciphers: | TLSv1.1: | الشفرات: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - قوي | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - قوي | TLS_RSA_WITH_AES_128_CBC_SHA - قوي | TLS_RSA_WITH_AES_256_CBC_SHA - قوي | الضاغطات: | NULL | TLSv1.2: | الشفرات: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - قوي | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - قوي | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - قوي | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - قوي | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - قوي | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - قوي | TLS_RSA_WITH_AES_128_CBC_SHA - قوي | TLS_RSA_WITH_AES_128_CBC_SHA256 - قوي | TLS_RSA_WITH_AES_128_GCM_SHA256 - قوي | TLS_RSA_WITH_AES_256_CBC_SHA - قوي | TLS_RSA_WITH_AES_256_CBC_SHA256 - قوي | TLS_RSA_WITH_AES_256_GCM_SHA384 - قوي | الضاغطات: | NULL |_ أدنى قوة: قوية انتهى Nmap: تم مسح 1 عنوان IP (1 مضيف متاح) في 0.11 ثانية
في هذه المرحلة، يمكنك التوقف بالفعل إذا أردت لأن الهدف هو التأكد من أنك قادر على الاتصال بـ SparkPost باستخدام TLS 1.2. إذا كانت اتصالك يدعم TLS 1.2 فهذا ما نحتاجه في هذه المرحلة لذلك نحن بخير هنا. اشتري ذلك المسؤول عن النظام بيرة وقل له شكراً.
أرسل لنا بريد إلكتروني وأعلمنا أنك كنت ناجحًا.
التحقق من الدعم على جهاز Mac الخاص بك
السبب الأكثر شيوعاً الذي قد تحتاج بسببه للتحقق من الدعم على جهاز Mac الخاص بك هو أنك تستخدمه للتطوير المحلي، لذا دعنا نفترض ذلك ونتحقق من دعمك.
الطريقة الأقل تدخلاً هي استخدام curl الذي يجب أن يكون مدمجًا في كل جهاز Mac. قم بتشغيل تطبيق Terminal واستخدم العلم البروتوكولي لاختبار تحديدًا لـ TLS1.2.
curl https://api.sparkpost.com/ --tlsv1.2 --verbose * محاولة 54.213.185.174... * تم تعيين TCP_NODELAY * متصل بـ api.sparkpost.com (54.213.185.174) المنفذ 443 (#0) * ALPN، تقدم h2 * ALPN، تقدم http/1.1 * اختيار التشفير: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * تم ضبط مواقع التحقق من الشهادات بنجاح: * CAfile: /etc/ssl/cert.pem CApath: none * TLSv1.2 (OUT)، مصافحة TLS، عميل مرحبا (1): * TLSv1.2 (IN)، مصافحة TLS، خادم مرحبا (2): * TLSv1.2 (IN)، مصافحة TLS، شهادة (11): * TLSv1.2 (IN)، مصافحة TLS، تبادل مفتاح الخادم (12): * TLSv1.2 (IN)، مصافحة TLS، الخادم منتهية (14): * TLSv1.2 (OUT)، مصافحة TLS، تبادل مفتاح العميل (16): * TLSv1.2 (OUT)، تغيير شيفرة TLS، عميل مرحبا (1): * TLSv1.2 (OUT)، مصافحة TLS، منتهية (20): * TLSv1.2 (IN)، تغيير شيفرة TLS، عميل مرحبا (1): * TLSv1.2 (IN)، مصافحة TLS، منتهية (20): * اتصال SSL باستخدام TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN، الخادم قبل استخدام h2 * شهادة الخادم: * الموضوع: CN=*.sparkpost.com * تاريخ البدء: 30 يناير 2020 00:00:00 GMT * تاريخ انتهاء الصلاحية: 28 فبراير 2021 12:00:00 GMT * subjectAltName: مضيف "api.sparkpost.com" مطابق لشهادة "*.sparkpost.com" * المصدر: C=US؛ O=Amazon؛ OU=Server CA 1B؛ CN=Amazon * التحقق من شهادة SSL ناجح. * باستخدام HTTP2، يدعم الخادم الاستخدام المتعدد * تغيرت حالة الاتصال (HTTP/2 مؤكد) * نسخ بيانات HTTP/2 في مخزن البث إلى مخزن الاتصال بعد الترقية: len=0 * استخدام معرف البث: 1 (مقبض سهل 0x7fbd69805200) > GET / HTTP/2 > مضيف: api.sparkpost.com > وكيل المستخدم: curl/7.54.0 > قبول: */* > * تغيير حالة الاتصال (MAX_CONCURRENT_STREAMS محدث)! < HTTP/2 200 < التاريخ: الخميس، 07 مايو 2020 15:14:30 GMT < نوع المحتوى: text/plain < طول المحتوى: 95 < الخادم: msys-http < * ترك الاتصال #0 بالمضيف api.sparkpost.com سليماً أوه مرحباً! ينبغي عليك أن تأتي للعمل معنا وبناء أشياء رائعة!
إذا كنت تريد الاختبار باستخدام اتصال SMTP، يمكنك القيام بذلك باستخدام هذا الأمر:
openssl s_client -crlf -starttls smtp -tls1_2 -connect smtp.sparkpostmail.com:587
يعود بكمية كبيرة من البيانات تشمل:
SSL-Session: البروتوكول : TLSv1.2 الشيفرة : ECDHE-RSA-AES256-GCM-SHA384
التحقق من الدعم في Windows
مماثل لحالة استخدام Mac، فإن السبب الأكثر شيوعًا الذي قد تحتاج فيه إلى التحقق من الدعم في نظام Windows لديك هو أنك تستخدمه للتطوير المحلي، لذلك لنفترض ذلك ونتحقق من دعمك.
Windows 7 وWindows 10 يستخدمان بشكل أساسي نفس العملية. إذا كنت تستخدم إصدارًا أقدم، يرجى الترقية حيث أن الإصدارات السابقة لا تدعم TLS 1.2.
ابدأ بالنقر على START في الزاوية السفلية اليسرى (عادة).
اكتب “خيارات الإنترنت” وحدد المطابقة من القائمة الناتجة.
انقر على علامة التبويب
انتظر، ماذا؟ لا يوجد 1.2؟
يا له من موقف محبط. لم يكتمل عملك بعد.
إذا كنت تمتلك فقط TLS1.1، فعليك تحديث إعدادات Cipher لديك.
بافتراض أنك تستخدم Linux وApache لإدارة اتصال TLS، يمكنك تحديث تكوين SSL عن طريق تعديل هذا السطر لإضافة “+TLSv1.2 ”:
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
(ملحوظة جانبية: نظرًا لأنها لم تعد مدعومة في أي مكان على الأغلب، فمن المنطقي إزالة إعدادات 1.0 و1.1 أثناء وجودك هنا.)
عادةً ما يكون هذا التكوين موجودًا في /etc/httpd/conf.d/ssl.conf
قم بإعادة تشغيل Apache وستكون جاهزًا.
service httpd restart
إذا كنت تستخدم Nginx، سترغب في تعديل هذا السطر بطريقة مماثلة:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
عادةً ما يكون هذا التكوين موجودًا في /etc/nginx/conf.d/
قم بإعادة تشغيل Nginx وستكون جاهزًا.
service nginx restart
إذا واجهت أي رسائل خطأ مع إعادة التشغيل، فقد تكون لديك مكتبة SSL غير محدثة. تأكد من أنك تستخدم على الأقل openssl v1.0.1g.
إذا كنت تستخدم Windows، فالإرشادات لضبط TLS1.2 موجودة في قسم “التحقق من الدعم في Windows” أعلاه.
هل انتهيت؟ أرسل لنا بريدًا إلكترونيًا وأخبرنا أنك قد نجحت.
المضي خطوة واحدة إلى الأمام
لماذا نتوقف عند TLS 1.2 عندما تعرف - أنت فقط تعرف - أننا جميعًا سنضطر إلى الترقية إلى TLS 1.3 في العام المقبل أو نحو ذلك. لماذا لا نقوم بالترقية إلى TLSv1.3 بينما نحن في ذلك؟
لسوء الحظ، لا تدعم AWS ALBs TLS1.3 حتى الآن، لذلك إذا قمت بترقية تكوينك، فإن اتصالك بـ SparkPost وأي خدمة أخرى من خدمات AWS تستخدم طبقة ALB سيظل محدودًا بـ TLS1.2. شخصياً، لا أزال أعتقد أن من الجيد أن تتقدم على المنحنى وتقوم بالترقية إلى الإصدار 1.3 أثناء إجراء التغييرات على أي حال.
إذا كنت ترغب في إضافة دعم لـ TLS 1.3، فربما ستحتاج إلى تحديث مكتبة الـ OpenSSL أولاً إلى V1.1.1 أو لاحقًا ثم إضافة +TLSv1.3 إلى سطر البروتوكول المذكور أعلاه. يمكن العثور على تعليمات مشابهة هنا لـ Nginx وCloudflare أيضًا.
ابق آمنًا هناك
أخيرًا، سيكون رائعًا إذا كان بإمكانك إرسال بريد إلكتروني سريع لنا لإعلامنا بأنك قد تحققت من قدرتك على استخدام TLS 1.2. نحن حقًا لا نرغب في توقيف أي شخص، والتاريخ النهائي هو سبتمبر 2020. إذا علمنا بأنك في المنطقة الآمنة، سنشعر براحة أكبر بشأن إيقاف الدعم القديم.