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

How can i enable HTTPS over a Snap server?

是否有在 Snap 服务器中启用 HTTPS 的简单示例? 我不太喜欢 OpenSsl 及其与 Snap 的用法。 谢谢

JP Moresmau 向您展示了如何从命令行启用它,但以编程方式执行同样的操作同样简单。启动 Snap 的 "main loop" 的函数将配置参数作为第一个参数,如您所见 in this bit of documentation. You can simply call defaultConfig from the Snap.Http.Server.Config 模块,然后在其上调用 setSSLPortsetCertsetSSLKey .然后你可以将这个新配置作为第一个参数传递给 httpServe。如果您使用 snap init,您可以在 src/Main.hs.

中找到所有相关代码

如您所见here, the default config is created from the command line using a description of options。因此,更改 defaultConfig 与传递命令行参数完全相同。

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