gpt4 book ai didi

ssl - Erlang Web 框架和 SSL?

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:49 25 4
gpt4 key购买 nike

任何人都可以 1) 告诉我该怎么做,或者 2) 向我指出有关如何通过 Erlang Web 框架运行/启用/使用 SSL 的资源吗?我在任何文档或在线网络搜索中都找不到任何内容,而且他们邮寄列表中的最后一篇帖子似乎已经有几年了。

谢谢。

最佳答案

在您的 Erlang Web 应用程序中启用 SSL 的第一步是配置底层 Web 服务器。例如,如果您使用的是 Inets,则可以使用该文件:

config/inets_https.conf:

配置文件示例(使用类似 Apache 的语法)如下所示:

ServerName erlangweb_https
ServerRoot docroot
DocumentRoot docroot
BindAddress 0.0.0.0
Modules e_mod_inets
Port 443
SocketType ssl
SSLCertificateFile my.cert
SSLCertificateKeyFile my.key
SSLVerifyClient 0

您还可以使用“erlang”语法配置它:

[{inets, [...]}].

有关 Erlang Web 服务器配置文件的更多信息,请访问:

http://wiki.erlang-web.org/Eptic/ServerConfiguration

并且,特别是对于 Inets:

http://www.erlang.org/doc/man/httpd.html

设置好之后,您可以在应用程序 Controller 中将用户重定向到 HTTPS,如下所示(假设服务器使用默认端口):

{redirect, "https://" ++ e_conf:host() ++ "/" ++ wpart:fget("__path")}.

如果你的服务器没有使用默认端口,上面的重定向变成:

{redirect, "https://" ++ e_conf:host() ++ ":" ++ e_conf:https_port()
++ "/" ++ wpart:fget("__path")}.

有关 Erlang Web 中配置参数的更多信息:

http://wiki.erlang-web.org/ProjectConf

为了减少冗长,您可能需要查看 Erlang Web annotations .例如,你可以这样写:

?BEFORE.
https(true, _Mod, _Fun, Args) ->
case wpart:fget("__https") of
false ->
Host = e_conf:host(),
Port = e_conf:https_port(),
Path = wpart:fget("__path"),
Redirect = "https://" ++ Host ++ ":" ++ Port ++ "/" ++ Path,
{skip, {redirect, Redirect}};
true ->
{proceed, Args}
end.

然后在您的 Controller 功能强制 HTTPS 之前使用它:

?HTTPS(true).
my_function(Args) ->
....

关于ssl - Erlang Web 框架和 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com