
تخصيص هل تستخدم TLS إصدار أقدم من 1.2؟ لا بأس، فالتأخير في تحديثات الصيانة يحدث للجميع. نحن نفهم ذلك. ومع ذلك، حان الوقت للمضي قدمًا.
هل تستخدم TLS الإصدار الأقدم من 1.2؟ لا بأس، تأخير التحديثات للصيانة يحدث للجميع. نفهم ذلك. ومع ذلك، حان الوقت للمضي قُدماً.
تذكر في يونيو 2018 عندما أعلنا عن إيقاف استخدام TLS 1.0؟ إذا لم تتذكر، لا بأس يمكنك قراءة كل شيء عنه في هذا المنشور. حسناً، نحن هنا، بعد مرور عامين والإصدار التالي على وشك التوقف، لذا نريدك أن تكون مستعدًا لتجنب أي انقطاع في الخدمة. هذا المنشور يدور حول إعدادك للتشغيل بدون استخدام TLS1.1 حتى نتمكن من تقييد الوصول إلى TLS1.2 فقط. سنشرح لك كيفية التحقق من الإصدار الحالي لديك وكيفية الترقية إلى الأحدث. من أجل التسلية، نرغب حقًا في سماع ملاحظاتك وإضافتك إلى "جدار الروعة" الذي يضم جميع الشركات التي تُعنى بأمور الأمان وتقوم بالتغيير مبكرًا.
هل يؤثر ذلك علي؟
في عام 2018، طلبنا من عملائنا الترقية، وكان توصية استخدام TLS 1.2 موجودة لبعض الوقت، لذا فمن المحتمل جدًا أنك لسْتَ متأثرًا. ومع ذلك، إذا كنت تستخدم أي طريقة لحقن الرسائل (مثل SMTP أو REST API) أو جمع البيانات (مثل metrics أو webhooks، إلخ)، فعليك حقًا التحقق الآن للتأكد من أن نظامك يمكنه دعم TLS 1.2. تأكد من إجراء الاختبارات التالية على الخوادم التي تتصل فعليًا بـSparkPost.
لماذا هو مهم
لماذا الآن؟
في الواقع، يجب أن يكون السؤال هو "لماذا لا تزال تدعمه؟" لقد كان TLS 1.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. إذا علمنا بأنك في المنطقة الآمنة، سنشعر براحة أكبر بشأن إيقاف الدعم القديم.