Haskell Warp/Wai和HTTPS——如何使它们工作?
我在Haskell Servant和Warp中有一个基本的hello world应用程序。这不是真正的代码,但为了简单起见,假设我正在使用它:Haskell Warp/Wai和HTTPS——如何使它们工作?,haskell,ssl,https,haskell-warp,Haskell,Ssl,Https,Haskell Warp,我在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 :: Appl
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,我没有找到任何东西。有人能帮我吗 我想最简单的方法是使用库-在
TLSSettings
中设置您的证书文件(我将首先尝试),并使用而不是运行
:
serveApp :: IO ()
serveApp = do
let tls = tlsSettings "pathToCert" "pathToKey"
runTLS tls (setPort 443 defaultSettings) app
你什么都知道!但是在warp tls,它说“对SSL的支持现在已经过时了。”而SSL正是我所需要的。我可以向你保证,我知道的很少(除了如何将查询输入Hayoo;),我以前从未听说过Hayoo,那不是我。我环顾了一下四周,我觉得包中的评论有点误导:(如果我理解正确,这意味着当前的浏览器将在标题上建立TLS,因此您可能不再需要Open443端口,可以使用80(?)——正如我所说:我不是这方面的专家)