#ruby-on-rails #openssl #ssl-certificate #puma
#ruby-on-rails #openssl #ssl-сертификат #puma
Вопрос:
Сервер Rails выдает ошибку SSL каждый раз, когда я пытаюсь подключиться к серверу.
[34087] Puma startin& in cluster mode...
[34087] * Version 4.3.3 (ruby 2.6.5-p114), codename: Mysterious Traveller
[34087] * Min threads: 10, max threads: 10
[34087] * Environment: development
[34087] * Process workers: 1
[34087] * Phased restart available
[34087] * Listenin& on tcp://0.0.0.0:3001
[34087] * Listenin& on ssl://0.0.0.0:3000?cert=confi&/ssl.crtamp;key=confi&/ssl.keyamp;verify_mode=noneamp;no_tlsv1=falseamp;no_tlsv1_1=false
[34087] Use Ctrl-C to stop
[34087] * Startin& control server on unix:///tmp/puma-status-1596893456509-34087
[34087] - Worker 0 (pid: 34120) booted, phase: 0
2020-08-08 19:03:16 0530: SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:14209102:SSL routines:tls_early_post_process_client_hello:unsupported protocol - 337678594&&t;
Сертификат ssl и ключ уже предоставлены из конфигурации на сервере rails, но даже тогда я продолжаю получать ошибку ssl
Ответ №1:
Просто нужно было настроить мое приложение для запуска с SSL в локальной среде разработки. Шаги, которые я предпринял:
- Создайте сертификаты в корне папки вашего проекта:
$ openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt
- Запустите сервер rails как:
$ rails s -b 'ssl://localhost:3000?key=localhost.keyamp;cert=localhost.crt'
Возможно, это может вам помочь. В вашем случае вы, вероятно, могли бы пропустить первый шаг и просто отредактировать rails s
команду из шага 2, указав правильные пути к вашим localhost.key
, localhost.crt
файлам.
Также могу упомянуть, что в моем confi&/environemnts/development.rb
я добавил в конец файла: confi&.force_ssl = true
Хотя не уверен, что это необходимо.
Комментарии:
1. Я уже пробовал это ранее, но у меня это не сработало.
2. Вот как я запускаю свой сервер puma. Это ничего не исправляет.