Ошибка 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: … Я только что попробовал снова, и снова появилось:

«Упс, программное обеспечение, управляющее этим форумом, столкнулось с неожиданной проблемой. Приносим извинения за неудобства…»

Затем я несколько раз нажал F5 (из-за раздражения :slight_smile: ), и внезапно экран изменился на:

Извините, произошла ошибка авторизации вашей учётной записи. Пожалуйста, попробуйте снова.

После этого мне пришлось снова войти в систему через сайт моего провайдера OAuth2, и снова появилось «Упс…», а после ещё одного нажатия F5 я оказался внутри…

Хм… либо я нашёл серьёзную проблему с безопасностью, либо это просто вопрос тайминга…

Скорее всего, второе…

Какие есть таймауты, которые я мог бы попробовать настроить?

Спасибо и всего наилучшего!