如何通过Snap服务器启用HTTPS?

时间:2015-05-25 13:33:39

标签: haskell haskell-snap-framework

是否有一个关于在Snap服务器中启用HTTPS的简单示例? 我不是OpenSsl及其在Snap中的用法。 感谢

1 个答案:

答案 0 :(得分:2)

JP Moresmau向您展示了如何从命令行启用它,但以编程方式执行相同操作同样容易。启动Snap"主循环"的功能将配置参数作为第一个参数,您可以看到in this bit of documentation。您只需从Snap.Http.Server.Config模块中致电defaultConfig,然后点击setSSLPortsetCertsetSSLKey即可。然后,您可以将此新配置作为第一个参数传递给httpServe。如果您使用snap init,则可以在src/Main.hs中找到所有相关代码。

如您所见here,默认配置是使用a description of options从命令行创建的。因此,更改defaultConfig与传递命令行参数完全相同。

我觉得有点奇怪的是,没有defaultSSLConfig生成自签名证书,因此您可以快速尝试SSL。此外,证书和密钥属于FilePath类型很奇怪。也许对Snap团队来说,这是一个很好的拉动请求吗?