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

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以使用它,因为默认情况下它将不使用它。缺少有关此问题的信息-经/纬和SSL,我还没有发现任何东西。有人可以帮我吗?

最佳答案

我想最简单的方法是使用warp-tls库-将证书文件设置在TLSSettings中(我会先尝试 tlsSettings ),然后使用 runTLS 而不是run:

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

08-04 21:46