ssl_error_rx_record_too_long وApache SSL [مغلق]
-
02-07-2019 - |
سؤال
لدي عميل يحاول الوصول إلى أحد مواقعي، ويستمر في تلقي هذا الخطأ > 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>
إذا كان لديك خطأ بعد إعداد 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 الخاص بي لم يكن يقوم بالتشغيل بشكل صحيح ...