У меня возникли проблемы с настройкой моего приложения Rails для успешного использования SSL. Стек использует apache, puma и ubuntu. Мое приложение работает на порту 3000.
Без SSL приложение работало отлично. Теперь единственное, что отображается в моем URL-адресе, — это список каталогов /var/www/myapp/public. Я просто не могу показать свое приложение Rails.
Приложение успешно перенаправляет весь http трафик на https.
Может ли кто-нибудь с успешной настройкой поделиться своими файлами конфигурации sites-available или предложить изменения в моих ниже? У меня такое чувство, что где-то я пропустил одну строчку. Я впервые пытаюсь запустить и запустить сервер приложений SSL cert rails.
Я не понимаю, как мое приложение, работающее на порту 3000, должно отображаться при просмотре сайта через SSL на порту 443.
Вот моя sites-available установка:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@<MYAPP.COM>
ServerName <MYAPP.COM>
DocumentRoot /var/www/<MYAPP>/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/ssl/certs/<MYAPP.crt>
SSLCertificateKeyFile /etc/ssl/private/<MYAPP.key>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Я бился головой о Google последние 5 часов. Любая помощь очень ценится.





Вам нужно настроить apache как обратный прокси.
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
Я не знаю, как вы это размещаете, но в прошлом моя команда использовала AWS, и мы разместили сертификат на ELB. Это оставляет трафик зашифрованным между клиентом и нашим ELB, а затем все внутреннее использует HTTP, так что нам не нужно устанавливать сертификаты на кучу серверов (у нас есть избыточность) и не нужно беспокоиться о создании Rails ( или Apache) иметь дело с сертификатом.