سؤال

لدي عميل يحاول الوصول إلى أحد مواقعي، ويستمر في تلقي هذا الخطأ > ssl_error_rx_record_too_long

إنهم يحصلون على هذا الخطأ على جميع المتصفحات وجميع الأنظمة الأساسية.لا أستطيع إعادة إنتاج المشكلة على الإطلاق.

أنا وخادمي موجودان في الولايات المتحدة الأمريكية، والعميل موجود في الهند.

لقد بحثت في Google عن المشكلة، ويبدو أن المصدر الرئيسي هو أن منفذ SSL يتحدث في HTTP.لقد قمت بفحص الخادم الخاص بي، وهذا لا يحدث.حاولت الحل المذكور هنا, ، لكن العميل ذكر أنه لم يحل المشكلة.

هل يمكن لأحد أن يقول لي كيف يمكنني إصلاح هذا، أو كيف يمكنني إعادة إنتاج هذا؟؟؟

الحل

تبين أن العميل لديه وكيل محلي تم تكوينه بشكل خاطئ!

نأمل أن يساعد أي شخص في العثور على هذا السؤال في محاولة تصحيحه في المستقبل.

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

المحلول

ال الرابط المذكور بواسطة Subimage كان على حق في الحصول على المال بالنسبة لي.واقترح تغيير علامة المضيف الظاهري، أي من <VirtualHost myserver.example.com:443> ل <VirtualHost _default_:443>

خطا بالكود: ssl_error_rx_record_too_long

وهذا يعني عادةً أن تنفيذ SSL على الخادم الخاص بك غير صحيح.يحدث الخطأ عادةً بسبب مشكلة من جانب الخادم والتي سيحتاج مسؤول الخادم إلى التحقيق فيها.

فيما يلي بعض الأشياء التي نوصي بتجربتها.

  • تأكد من أن المنفذ 443 مفتوح وممكّن على الخادم الخاص بك.هذا هو المنفذ القياسي لاتصالات https.

  • إذا كان SSL يستخدم منفذًا غير قياسي، فيمكن أن يعطي FireFox 3 هذا الخطأ أحيانًا.تأكد من تشغيل SSL على المنفذ 443.

  • إذا كنت تستخدم Apache2، فتأكد من أنك تستخدم المنفذ 443 لـ SSL.يمكن القيام بذلك عن طريق تعيين ملفports.conf كما يلي

    Listen 80
    Listen 443 https
    
  • تأكد من عدم وجود أكثر من شهادة SSL واحدة تشترك في نفس عنوان IP.يرجى التأكد من أن جميع شهادات SSL تستخدم عنوان IP المخصص لها.

  • إذا كنت تستخدم Apache2، فتحقق من تكوين vhost الخاص بك.أبلغ بعض المستخدمين عن التغيير <VirtualHost> ل _default_ حل الخطأ.

هذا حل مشكلتي.من النادر أن أبحث في Google عن رسالة خطأ وأحصل على النتيجة الأولى بالإجابة الصحيحة!:-)

بالإضافة إلى ما سبق, ، هذه بعض الحلول الأخرى التي وجدها أشخاص آخرون تسبب المشكلة:

  • تأكد من أن شهادة SSL الخاصة بك ليست منتهية الصلاحية

  • حاول تحديد التشفير:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3

نصائح أخرى

الحل بالنسبة لي كان ذلك default-ssl لم يتم تمكينه في أباتشي 2 ....مجرد وضع SSLEngine On

كان علي أن أنفذ a2ensite default-ssl وعملت كل شيء.

في حالتي اضطررت إلى تغيير <VirtualHost *> مرة أخرى إلى <VirtualHost *:80> (وهو الإعداد الافتراضي في Ubuntu).وبخلاف ذلك، فإن المنفذ 443 لم يكن يستخدم SSL وكان يرسل HTML عاديًا مرة أخرى إلى المتصفح.

يمكنك التحقق مما إذا كانت هذه هي حالتك بسهولة تامة:فقط اتصل بالخادم الخاص بك http://www.example.com:443.إذا رأيت HTML عاديًا، فهذا يعني أن Apache الخاص بك لا يستخدم SSL على المنفذ 443 على الإطلاق، ويرجع ذلك على الأرجح إلى خطأ في تكوين VirtualHost.

هتافات!

في حالتي كنت قد نسيت تعيين SSLEngine On في التكوين.مثل ذلك،

<VirtualHost _default_:443>
  SSLEngine On
  ...
</VirtualHost>

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslengine

إذا كان لديك خطأ بعد إعداد https vhost جديد ويبدو أن التكوين صحيح، فتذكر الارتباط sites-enabled أيضاً.

سؤال قديم، ولكن النتيجة الأولى بالنسبة لي هي Google، لذا إليك ما كان علي فعله.

Ubuntu 12.04 Desktop مع تثبيت Apache

تم تثبيت كل التكوينات وmod_ssl عندما قمت بتثبيت Apache، ولكن لم يتم ربطها في الأماكن الصحيحة حتى الآن.ملحوظة:جميع المسارات أدناه مرتبطة بـ /الخ/اباتشي2/

mod_ssl يتم تخزينه في ./mods-available, ، وتكوين موقع SSL قيد التشغيل ./sites-available, ، عليك فقط ربطها بأماكنها الصحيحة في ./mods-enabled و ./sites-enabled

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

أعد تشغيل Apache ويجب أن يعمل.كنت أحاول الوصول https://localhost, ، لذلك قد تختلف نتائجك بالنسبة للوصول الخارجي، ولكن هذا نجح بالنسبة لي.

اطلب من المستخدم عنوان URL الدقيق الذي يستخدمه في متصفحه.إذا كانوا يدخلون https://your.site:80, ، فقد يتلقون الخطأ ssl_error_rx_record_too_long.

في حالتي، كان لدي عنوان IP خاطئ في ملف المضيف الظاهري.كان الاستماع 443، وكان المقطع <VirtualHost 192.168.0.1:443> لكن الخادم لم يكن لديه عنوان 192.168.0.1!

لطفا أنظر هذا الرابط.

لقد بحثت في جميع ملفات سجل Apache الخاصة بي حتى وجدت الخطأ الفعلي (لقد قمت بتغيير ملف <VirtualHost> من _default_ لي fqdn).عندما أصلحت هذا الخطأ، كل شيء سار على ما يرام.

في حالتي كانت المشكلة هي أن https لم يتمكن من البدء بشكل صحيح لأن الاستماع 443 كان في التوجيه "IfDefine SSL"، لكن أباتشي الخاص بي لم يبدأ بخيار -DSSL.كان الإصلاح هو تغيير البرنامج النصي الخاص بي apachectl في:

$HTTPD -k $ARGV

ل:

$HTTPD -k $ARGV -DSSL

نأمل أن يساعد شخص ما.

كانت مشكلتي بسبب انخفاض MTU عبر اتصال VPN.

netsh interface ipv4 show inter

Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
  1 4275 4294967295  connected    Loopback Pseudo-Interface 1
 10 4250   **1300**  connected    Wireless Network Connection
 31   25   1400  connected    Remote Access to XYZ Network

يصلح:واجهة netsh ipv4 تعيين واجهة "اتصال الشبكة اللاسلكية" mtu=1400

قد تكون المشكلة تتعلق باتصال غير VPN أيضًا...

كان لدي تكوين مضيف افتراضي معطل.تذكر أنك تحتاج إلى مضيف افتراضي واحد بدون SSL للمنفذ 80، ومضيف آخر مزود بـ SSL للمنفذ 443.لا يمكنك الحصول على كليهما في مضيف افتراضي واحد، كما حاول التكوين الذي أنشأه webmin القيام به.

واجهت نفس المشكلة في بعض المتصفحات للوصول إلى موقع SSL الخاص بي.لقد وجدت ذلك كان علي أن أعطي لبرنامج فايرفوكس الوكيل الصحيح (كان Firefox يصل مباشرة إلى الإنترنت).

اعتمادًا على تكوين الشبكة المحلية (الاتصال النفقي، والتصفية، وإعادة توجيه الوكيل)، فإن وضع "الوصول المباشر إلى الإنترنت" في FireFox يلقي هذا الخطأ.

يمكنك أيضًا محاولة إصلاح ملف المضيفين.

احتفظ بملف vhost بالمجال المؤهل بالكامل وأضف اسم المضيف في ملف المضيفين / الخ / المضيفين (ديبيان)

ip.ip.ip.ip name name.domain.com

بعد إعادة تشغيل Apache2، يجب أن يختفي الخطأ.

بالنسبة لي كان الحل هو أن ddclient الخاص بي لم يكن يقوم بالتشغيل بشكل صحيح ...

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