есть простой пример включения HTTPS в Snap-сервере? Я не это в OpenSsl и его использование с помощью Snap. ThanksКак включить HTTPS через Snap-сервер?
ответ
JP Moresmau показал вам, как включить его из командной строки, но сделать то же самое программно так же просто. Функция, которая запускает основной цикл Snap, принимает в качестве первого аргумента параметр конфигурации, как вы можете видеть in this bit of documentation. Вы можете просто позвонить defaultConfig
с модуля Snap.Http.Server.Config, а затем позвонить setSSLPort
, setCert
и setSSLKey
на нем. Затем вы можете передать эту новую конфигурацию в httpServe
в качестве первого аргумента. Если вы использовали snap init
, вы можете найти все соответствующие коды в своем src/Main.hs
.
Как вы можете видеть here, конфигурация по умолчанию создается из командной строки с использованием a description of options. Поэтому изменение defaultConfig
в точности совпадает с передачей аргументов командной строки.
Что я нахожу немного странным, так это то, что нет defaultSSLConfig
, который генерирует самозаверяющий сертификат, чтобы вы могли быстро попробовать SSL. Кроме того, это нечетный сертификат и ключи имеют тип FilePath
. Может быть, это хороший запрос на получение команды Snap для проверки?
Вы посмотрели http://snapframework.com/faq#how-do-i-enable-ssl? Где вы застряли? –
Я читал, да. Я думал, что это будет что-то более программное, прямо с сервера, написанное в приложении, используя одну из этих [функций] (https://hackage.haskell.org/package/snap-server-0.9.5.1/docs/Snap- Http-Server-Config.html) –
@JPMoresmau Официальная документация об этом вводит в заблуждение, поскольку предполагает, что вы используете внутренний парсинг аргументов cli через 'commandLineAppConfig', который может быть или не быть правдой, в зависимости от вашего проекта. – hasufell