خطأ SSL أثناء OAuth2

هذا المنشور

المتعلق بالموضوع قد أُغلق، لكنني ما زلت أواجه هذه المشكلة في الإصدار

2.4.0.beta8

تحدث المشكلة أثناء مصادقة oauth2

Excon::Error::Socket (SSL_connect returned=1 errno=0 state=error: dh key too small (OpenSSL::SSL::SSLError))
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/ssl_socket.rb:125:in `connect_nonblock'

آخر 14 سطرًا من تتبع الاستدعاء:

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/ssl_socket.rb:125:in `connect_nonblock'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/ssl_socket.rb:125:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/connection.rb:455:in `new'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/connection.rb:455:in `socket'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/connection.rb:116:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/middlewares/mock.rb:56:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/middlewares/instrumentor.rb:34:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/middlewares/idempotent.rb:19:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/middlewares/base.rb:22:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/middlewares/base.rb:22:in `request_call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/excon-0.64.0/lib/excon/connection.rb:270:in `request'
/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:127:in `fetch_user_details'
/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:164:in `after_authenticate'
/var/www/discourse/app/controllers/users/omniauth_callbacks_controller.rb:37:in `complete'

تحياتي،

جوليان

لا يؤثر هذا على البريد الإلكتروني في هذه الحالة، لكن التفسير الذي قدمته في الموضوع الذي ربطت به يظل كما هو. يفشل الاتصال بخادم OAuth2 لأن مفتاح DH صغير جدًا وبالتالي يُعتبر غير آمن من قبل OpenSSL.

يمكنك تطبيق الحل المؤقت التالي، لكن زيادة حجم مفتاح DH على خادم OAuth2 هي الحل الوحيد.

عذرًا، لقد نسيت… الآن الشيء السيء… لم يعد يعمل معي… لقد قمت بالتغييرات المذكورة إلى /etc/ssl/openssl.cnf

[system_default_sect]
MinProtocol = TLSv1.2
#CipherString = DEFAULT@SECLEVEL=2

ثم غادرت الحاوية وقمت بتشغيل الأمر التالي:

docker restart app

بعد ذلك، لا زلت أحصل على نفس الخطأ في سجلات الأخطاء.

لم أقل الحقيقة، آسف… الخطأ لم يعد هو نفسه الآن:

Faraday::ConnectionFailed (تم إعادة تعيين الاتصال بواسطة الطرف الآخر - SSL_connect)
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock’

أمر غريب جداً :frowning: … لقد جربته للتو مرة أخرى، وظهرت هذه الرسالة مرة أخرى

“عذراً، واجه البرنامج الذي يشرف على منتدى النقاش هذا مشكلة غير متوقعة. نعتذر عن الإزعاج…”

ثم قمت بتحديث الصفحة عدة مرات (بفعل الإحباط :slight_smile: ) وفجأة تغيرت الشاشة إلى

عذراً، حدث خطأ أثناء تفويض حسابك. يرجى المحاولة مرة أخرى.

ثم اضطررت لتسجيل الدخول مرة أخرى عبر موقع موفّر OAuth2 الخاص بي، وعندها ظهرت رسالة “عذراً ..” مرة أخرى، وبعد تحديث آخر بالضغط على F5 تمكنت من الدخول …

أممم… إما أنني اكتشفت مشكلة أمنية خطيرة، أو أن الأمر يتعلق فقط بتوقيت العمليات …

غالباً ما يكون الأمر هو الثاني …

ما هي فترات المهلة (timeouts) المتاحة التي يمكنني محاولة تعديلها؟

شكراً لكم وتحية طيبة!