Haskell Warp/Wai и HTTPS - как заставить их работать?

У меня есть базовое приложение hello-world в Haskell Servant и Warp. Это не настоящий код, но для простоты, скажем, я его использую:

import Network.Wai
import Network.Wai.Handler.Warp
import Servant


personAPI :: Proxy PersonAPI
personAPI = Proxy

server :: Server PersonAPI
server = return people

app :: Application
app = serve personAPI server

serveApp :: IO ()
serveApp = run 80 app

Он отлично работает на сервере. С http.

Я не использую nginx или apache, я запускаю его как есть, и на данный момент это нормально для меня.

Но с https он не загрузит страницу. Я установил сертификат https, но понял, что мне нужно каким-то образом настроить warp/wai, чтобы использовать его, потому что по умолчанию он не будет его использовать. Недостаточно информации об этом - warp/wai и SSL, я ничего не нашел. Кто-нибудь может мне помочь?

1 ответ

Решение

Я думаю, что самый простой способ - использовать библиотеку warp- tls - расположите файлы сертификатов в TLSSettings (Я бы попробовал tlsSettings во-первых) и использовать runTLS вместо run:

serveApp :: IO ()
serveApp = do
   let tls = tlsSettings "pathToCert" "pathToKey"
   runTLS tls (setPort 443 defaultSettings) app
Другие вопросы по тегам