12

我在 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 来使用它,因为默认情况下它不会使用它。缺少这方面的信息——warp/wai 和 SSL,我什么也没找到。有人可以帮我吗?

4

1 回答 1

12

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

serveApp :: IO ()
serveApp = do
   let tls = tlsSettings "pathToCert" "pathToKey"
   runTLS tls (setPort 443 defaultSettings) app
于 2016-04-17T11:43:47.990 回答