2016-04-17 17 views
6

我在Haskell Servant和Warp中有一个基本的hello-world应用程序。这不是真正的代码,但为了简单起见,假设我使用它:Haskell Warp/Wai和HTTPS - 如何使它们工作?

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,我还没有找到任何信息。任何人都可以帮我吗?

回答

7

我想最简单的方法是使用warp-tls库 - settup您的证书文件的TLSSettings(我会尝试tlsSettings第一),并使用runTLS代替run

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

你什么都知道! – Jushiti

+0

,但在warp-tls中显示“支持SSL现在已经过时”,SSL就是我所需要的。 – Jushiti

+0

我可以向你保证,我知道的很少(旁边如何进入查询进入Hayoo;)) – Carsten

相关问题