Error SSL durante OAuth2

Esta publicación

sobre el tema ha sido cerrada, pero aún encuentro este problema en la versión

2.4.0.beta8

Está ocurriendo durante la autenticación 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'

Últimas 14 líneas del rastreo:

/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'

Saludos,

Julian

En este caso, no afecta al correo electrónico, pero la explicación que di en el tema al que enlazas sigue siendo la misma. La conexión al servidor OAuth2 falla porque la clave DH es demasiado pequeña y, por lo tanto, OpenSSL la considera insegura.

Puedes aplicar la siguiente solución temporal, pero aumentar el tamaño de la clave DH en el servidor OAuth2 es la única solución definitiva.

Lo siento, se me olvidó… ahora viene lo malo… ya no me funciona…
Hice los cambios mencionados en /etc/ssl/openssl.cnf

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

Luego salí del contenedor y ejecuté

docker restart app

Después de eso, todavía obtuve el mismo error en los registros de errores.

No dije la verdad, lo siento… el error ya no es el mismo:

Faraday::ConnectionFailed (Conexión restablecida por el par - SSL_connect)
/usr/local/lib/ruby/2.6.0/net/protocol.rb:44:in `connect_nonblock’

Muy extraño :frowning: … Acabo de probarlo de nuevo, y de nuevo apareció esto

“Vaya, el software que impulsa este foro de discusión encontró un problema inesperado. Pedimos disculpas por las molestias…”

… Luego “F5” un par de veces (¡por frustración! :slight_smile: ) y de repente la pantalla cambió a

Lo sentimos, hubo un error al autorizar tu cuenta. Por favor, inténtalo de nuevo.

Entonces tuve que iniciar sesión nuevamente a través de mi sitio de proveedor OAuth2, y luego volvió a aparecer el “Vaya..”, y después de otro F5 finalmente entré…

Uhmm… o bien he encontrado un problema de seguridad grave, o simplemente se trata de un problema de temporización…

Probablemente sea lo segundo…

¿Qué tiempos de espera hay que podría intentar ajustar?

¡Gracias y saludos!