У меня есть веб-приложение Ruby, созданное с помощью Sinatra, Rack и Puma. Я использую Sinatra для реализации контроллеров (шаблон MVC), каждый из которых обрабатывает свой маршрут, а каждый класс контроллера расширяет Sinatra::Base
. Я бы хотел включить TLS, чтобы все подключения к серверу обслуживались по HTTPS.
Моя стойка config.ru
выглядит так:
require 'sinatra'
require 'rack'
# Start my database ...
run Rack::URLMap.new(
'/api/foo' => FooController.new,
'/api/bar' => BarController.new
)
Стойка автоматически забирает Puma.
Как включить HTTPS? Для начала я счастлив использовать самозаверяющий сертификат, но как я могу настроить сервер с действующим сертификатом? Ничто из этого не кажется хорошо задокументированным, что меня очень расстраивает. Могу ли я упустить из виду вариант, который я могу просто установить на верхнем уровне в моем файле конфигурации Rack, что-то вроде set :ssl => true
, может быть?
Подобные, но бесплодные сообщения SO: Как заставить Sinatra работать через HTTPS / SSL? Как включить SSL для автономного приложения Sinatra?