2016-04-17 13 views
6

Mam podstawowe zastosowanie Witam świecie w Haskell Servant i Warp. To nie jest prawdziwy kod, ale dla uproszczenia załóżmy, że używam go:Haskell Warp/Wai i HTTPS - jak je uruchomić?

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 

Działa prawidłowo na serwerze. Z http.

Nie używam nginx lub apache, uruchamiam go tak jak jest iw tym momencie jest dla mnie w porządku.

Ale z https nie załaduje strony. Mam zainstalowany certyfikat https, ale stwierdziłem, że powinienem jakoś skonfigurować warp/wai, aby go użyć, ponieważ domyślnie go nie używa. Brakuje informacji na ten temat - warp/wai i SSL, niczego nie znalazłem. Czy ktoś mógłby mi pomóc?

Odpowiedz

7

Chyba najprostszym sposobem jest za pomocą biblioteki warp-tls - settup plików certyfikatów w TLSSettings (chciałbym spróbować tlsSettings pierwszy) i używać runTLS zamiast run:

serveApp :: IO() 
serveApp = do 
    let tls = tlsSettings "pathToCert" "pathToKey" 
    runTLS tls (setPort 443 defaultSettings) app 
+0

wiesz wszystko! – Jushiti

+0

ale w warp-tls jest napisane, że "Obsługa SSL jest teraz przestarzała." I SSL jest tym, czego potrzebuję. – Jushiti

+0

Mogę was zapewnić, że wiem bardzo mało (poza tym, jak wprowadzić zapytania do Hayoo;)) – Carsten