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