كيف أحافظ على cacert.بيم الحالي لأسباب أمنية عند استخدام حليقة ؟

StackOverflow https://stackoverflow.com//questions/23032165

سؤال

أود أن أبقي الشهادات الجذر الحالي للاستخدام مع الضفيرة و PHP الداخلية curl الأمر ومع ذلك لا يوجد المعلمة حاليا لتحميل الملف الحالي يتطلب سليم اتصال آمن و أن يبقيه الحالي.

وعلى سبيل المثال استخدام curl في PHP آمنة الاتصال الذي يتطلب ملف اسمه cacert.pem (PEM ترميز سلسلة شهادات التحقق من الاتصالات البعيدة) على النحو التالي :

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
if (!($data = curl_exec($ch))) {
    echo "No data received";
} else {
    echo strlen($data) + " total byte(s)";
}
curl_close($ch);

في حين أن معظم الناس ببساطة مجموعة CURLOPT_SSL_VERIFYPEER إلى false ، وبالتالي تجاهل المشكلة ، والتي هي سيئة .يمكنك نرى هنا شهادة السلطة يظهر أنه إذا لم يكن لديك هذا الملف الحالي, الطريقة الوحيدة للاتصال إلى ملقم آمن هو تعطيل شهادة فحص و كذلك يحذر من تداعيات وراء تعطيل الأقران التحقق.

ما أنا الطالبة هو وسيلة مشروعة للحفاظ على نسخة محلية من cacert.pem بحيث عندما استخدم curl في PHP التواصل مع خوادم أخرى, أنا يمكن أن تستمر في القيام بذلك آمن .

هذا ليس طلبا الموارد الخارجية أو خارج الموقع رابط إلخ, ولكن بسبب طبيعة المشكلة ، فمن المرجح أنه قد يكون السبيل الوحيد لحل هذه لأنها تتطلب التحديث المستمر كما سلاسل الشهادة باطلة.حتى الآن ليس هناك طريقة للحصول على هذا الملف إما كجزء من توزيع حليقة نفسها ، أو php أو حليقة مكتبة php والاستمرار في الحفاظ عليه.في حين أنه من المحبط أن هذا ليس شيئا وهو تحديث بسيط أمر مثل curl --update-root-ca سيكون من الرائع ، فإنه لا وجود لها في أي شكل من الأشكال.

هل كانت مفيدة؟

المحلول

منذ البداية كتابة هذا المقال ، (وبالتالي إعادة كتابة هذا) كنت قادرا على حل مشكلتي من قبل بما في ذلك روابط مباشرة فقط مصدر شرعي للحفاظ على هذا الملف التي يتم توفيرها على الموقع يحتفظ بها صاحب curl في هذا الموقع

كما أن التكنولوجيا تتقدم على هذا السؤال تم تحديث لإظهار كيفية استخدام curl في PHP و القوة TLS v1.2 اتصال (وهو بعض مقدمي المعاملات تتطلب أو يوصي و قد يتم توفير المعلومات حول كيفية القيام بذلك).

بخصوص شهادة السلطات هناك عدد قليل من الجذر الرئيسي السلطات مثل :

  • سيمانتيك
  • رابيدسل
  • thawte
  • GeoTrust
  • كمودو

فضلا عن سلطات أخرى بحكم طبيعتها مثل

  • مايكروسوفت
  • موزيلا
  • جوجل

والتي يمكن أن يكون الإطار لأي شخص يتطلع إلى الحفاظ على بلدهم cacert.pem.نضع في اعتبارنا أن كنت بحاجة إلى تحميل قوائم إبطال (الشهادات التي تم اختراقها أو منتهية الصلاحية) من كل crl للحفاظ على الصحيح آلية الثقة ، في حين يجب أن تكون قادرة على الحصول على بعيدا مع تحميل الشهادة الجذر السلاسل باستخدام تلك المحلي authorative الملف الخاص بك cacert.pem.

نصائح أخرى

cacert.pem يستخدم من قبل curl.لا يوجد أي السلطة المطلقة التي شهادات يمكن الوثوق بها ، ولكن القوائم المستخدمة من قبل متصفحات الويب هي مصدر جيد.هذه القوائم يتم تحديثها باستمرار بسبب CA التغييرات في الممارسات الأمنية.

الكتاب من curl الحفاظ على الأداة التي يمكن استخراج cacert.pem من فايرفوكس و بعد معقول ما يصل إلى تاريخ الانتاج على الموقع:

  • cacert.pem ولدت من قبل المؤلفين من curl
  • caextract:معظم الأمنية واعية, تحميل أداة فحص التعليمات البرمجية المصدر وتشغيله ضد الخاص بك فايرفوكس.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top