باستخدام OpenSSL ماذا تعني عبارة "غير قادر على كتابة "حالة عشوائية""؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

أقوم بإنشاء شهادة SSL موقعة ذاتيًا لحماية قسم إدارة الخادم الخاص بي، وأستمر في تلقي هذه الرسالة من OpenSSL:

غير قادر على كتابة "حالة عشوائية"

ماذا يعني هذا؟

هذا على خادم أوبونتو.لقد قمت بترقية libssl لإصلاحها الثغرة الأمنية الأخيرة.

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

المحلول

من الناحية العملية، يبدو أن السبب الأكثر شيوعًا لحدوث ذلك هو أن الملف .rnd الموجود في الدليل الرئيسي لديك مملوك للجذر وليس لحسابك.الحل السريع:

sudo rm ~/.rnd

لمزيد من المعلومات، هنا الإدخال من الأسئلة الشائعة حول OpenSSL:

في بعض الأحيان، لا يتم إحباط الأداة المساعدة لسطر الأوامر opensl مع ظهور رسالة الخطأ "PRNG غير مصنفة"، ولكنها تشكو من أنها "غير قادرة على كتابة "حالة عشوائية"".تشير هذه الرسالة إلى ملف البذر الافتراضي (انظر الإجابة السابقة).أحد الأسباب المحتملة هو عدم معرفة اسم الملف الافتراضي لأنه لم يتم تعيين RANDFILE أو HOME.(الإصدارات حتى 0.9.6 تستخدم الملف ".rnd" في الدليل الحالي في هذه الحالة، ولكن هذا تغير مع 0.9.6a.)

لذلك أود التحقق من RANDFILE وHOME والأذونات للكتابة في تلك الأماكن في نظام الملفات.

إذا بدا أن كل شيء على ما يرام، يمكنك تجربة الجري معه Strace ونرى ما يحدث بالضبط.

نصائح أخرى

أعلم أن هذا السؤال موجود على نظام التشغيل Linux، ولكن على نظام التشغيل Windows واجهت نفس المشكلة.تبين أنه يتعين عليك تشغيل موجه الأوامر في وضع "تشغيل كمسؤول" حتى يعمل.وإلا فإنك تحصل على نفس الشيء:غير قادر على كتابة خطأ "الحالة العشوائية".

مشكلة أخرى على نظام التشغيل Windows، تأكد من تشغيل موجه الأوامر الخاص بك كمستخدم إداري!

لا أعلم كم مرة أصابني هذا..

على ما يبدو، كنت بحاجة إلى تشغيل OpenSSL كجذر حتى يتمكن من الحصول على إذن لملف البذر.

كان لدي نفس الشيء على خادم ويندوز.ثم اكتشفت عن طريق تغيير vars.bat الذي:

set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa

ثم أعد من البداية وسيكون كل شيء على ما يرام.

كانت المشكلة بالنسبة لي هي أنه كان لدي .rnd في الدليل الرئيسي الخاص بي ولكنه كان مملوكًا للجذر.أدى حذفه وإعادة إصدار الأمر opensl إلى إصلاح هذه المشكلة.

يجب عليك تعيين متغير البيئة $RANDFILE و/أو إنشاء ملف $HOME/.rnd.(الأسئلة الشائعة حول OpenSSL). (بالطبع، يجب أن يكون لديك حقوق في هذا الملف.الإجابات الأخرى هنا تدور حول ذلك.ولكن أولاً يجب أن يكون لديك الملف والإشارة إليه.)

حتى الإصدار 0.9.6، كتب OpenSSL ملف البذر في الدليل الحالي في الملف ".rnd".في الإصدار 0.9.6a ليس لديك ملف بذر افتراضي.سوف يعمل OpenSSL 0.9.6b والإصدارات الأحدث بشكل مشابه لـ 0.9.6a، ولكنه سيستخدم الإعداد الافتراضي "C:\" لـ HOME على أنظمة Windows إذا لم يتم تعيين متغير البيئة.

إذا كان ملف البذر الافتراضي غير موجود أو كان قصيرًا جدًا، فقد تظهر رسالة الخطأ "PRNG غير مصنف".

يتم استخدام متغير البيئة $RANDFILE و$HOME/.rnd فقط بواسطة أدوات سطر أوامر OpenSSL.توفر التطبيقات التي تستخدم مكتبة OpenSSL خيارات التكوين الخاصة بها لتحديد مصدر الإنتروبيا، يرجى مراجعة الوثائق المرفقة مع التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top