Как настроить 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;
}