Как настроить Rails с Puma для использования SSL?
Я только нашел, как запустите puma с помощью SSL:
$ puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert'
однако нет описания о том, как включить промежуточный сертификат CA в документацию. Кто-нибудь может указать мне правильное направление? Я использую Puma 1.6.3
спасибо!
4 ответов
объединение сертификата и пакета будет работать только при использовании nginx.
без nginx вы можете использовать ca
и verify_mode
варианты:
rails s puma -b 'ssl://0.0.0.0:9292?key=path_to_key.key&cert=path_to_cert.crt&verify_mode=none&ca=path_to_root_bundle.crt'
источник:https://github.com/puma/puma/blob/master/lib/puma/binder.rb
пока мы используем комбинированный Nginx+PhusionPassenger. Вы также не можете указать файл сертификата цепочки в nginx. Трюк состоит в том, чтобы связать все сертификаты в одном сертификате, а затем установить новый файл сертификата в качестве сертификата в конфигурации сервера. Вы найдете более подробную информацию в документация nginx. Проверьте раздел цепочки сертификатов SLL.
cat www.example.com.crt bundle.crt > www.example.com.chained.crt
надеюсь, что это помогло.
rails s puma -b 'ssl://0.0.0.0:9292?key=certkey.key&cert=cert.crt&verify_mode=peer&ca=root_bundle.crt
просто убедитесь, что вы выберите verify_mode=peer
.
возможно, лучше использовать Phusion Пассажира + Nginx для поддержки SSL. Эта комбинация имеет широко доступную документацию и очень проста в настройке, потому что в настоящее время это самый популярный выбор сервера приложений и используется такими, как New York Times, Symantec, AirBnB и т. д. Вот как вы это делаете, если у Вас установлен nginx с Phusion Passenger:
server {
listen 443;
server_name yourapp.local;
ssl on;
ssl_certificate ...;
ssl_key ...;
root /path-to-your-app/public;
passenger_enabled on;
}