2016-04-17 26 views
6

Haskell Hizmetkarı ve Warp'de temel bir dünya-dünya uygulaması var. Bu gerçek kodu değil ama basitlik uğruna ı kullanıyorum diyelim: Bu bir sunucuda çalışıyorHaskell Warp/Wai ve HTTPS - nasıl çalışırlar?

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 ile.

Nginx veya apache kullanmıyorum, olduğu gibi çalıştırıyorum ve bu noktada benim için iyi.

Ancak https ile sayfayı yüklemez. Https sertifikası yükledim ancak bir şekilde warp/wai'yi kullanmam gerektiğini, çünkü varsayılan olarak kullanamayacağımı topladım. Bu konuda bilgi sıkıntısı var - warp/wai ve SSL, hiçbir şey bulamadım. Biri bana yardım edebilir mi?

cevap

7

Ben kolay yolu warp-tls kitaplığı kullanarak olduğunu tahmin - sertifika dosyaları settup TLSSettings yılında (ilk tlsSettings çalışacaktı) ve run yerine runTLS kullanın:

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

herşeyi biliyorum! – Jushiti

+0

ancak warp-tls'de "SSL desteği artık kullanılmıyor" diyor ve SSL ihtiyacım olan şey. – Jushiti

+0

Sizi temin ederim ki çok az şey biliyorum (Hayoo'ya nasıl girileceğini anlatan;)) – Carsten