gpt4 book ai didi

erlang - 使用 SSL 分发运行 Erlang Escript 文件

转载 作者:行者123 更新时间:2023-12-04 07:00:00 26 4
gpt4 key购买 nike

我有一个小脚本文件,它连接到一个节点并执行一些 rpc 调用和其他东西......

它适用于短名称或长名称,但依赖于分布式 Erlang 的标准 http 通信。

我想使用它,但使用 https/SSL 进行分发。

要使用 SSL 启动一个“正常”的 Erlang 系统,您必须传入各种标志来告诉 Erlang 以这种方式运行,如 documentation建议:

$ ERL_FLAGS="-boot \"/home/me/ssl/start_ssl\" -proto_dist inet_ssl 
-ssl_dist_opt client_certfile \"/home/me/ssl/erlclient.pem\"
-ssl_dist_opt server_certfile \"/home/me/ssl/erlserver.pem\"
-ssl_dist_opt verify 1 -ssl_dist_opt depth 1"
$ export ERL_FLAGS
$ erl -sname ssl_test

这将默认分发机制( inet_tcp_dist )替换为 ssl 机制( inet_ssl_dist )。

escript将 erlang 文件作为 shell 脚本文件运行。

我的问题是:
  • 是否有可能获得运行 escript 的 Erlang“环境”以使用安全分发机制而不是默认分发机制?
  • 如果是这样,我该怎么做?
  • 最佳答案

    您不必通过环境设置这些标志,您也可以将它们直接传递给 erl ,见 ch. 1.4 here . erl标志可以传递给 escript通过 %%!论证线。

    z.escript

    #!/usr/bin/env escript
    %%! -boot start_ssl -proto_dist inet_ssl -ssl_dist_opt client_certfile /home/me/ssl/erlclient.pem -ssl_dist_opt server_certfile /home/me/ssl/erlserver.pem -ssl_dist_opt verify 1 -ssl_dist_opt depth 1
    main(_) ->
    io:format("~p~n", [init:get_arguments()]).
    zed@zed:~$ ./z.escript 
    [{root,["/opt/erlang-R13B03/lib/erlang"]},
    {progname,["erl"]},
    {home,["/home/zed"]},
    {boot,["start_clean"]},
    {noshell,[]},
    {boot,["start_ssl"]},
    {proto_dist,["inet_ssl"]},
    {ssl_dist_opt,["client_certfile","/home/me/ssl/erlclient.pem"]},
    {ssl_dist_opt,["server_certfile","/home/me/ssl/erlserver.pem"]},
    {ssl_dist_opt,["verify","1"]},
    {ssl_dist_opt,["depth","1"]}]

    关于erlang - 使用 SSL 分发运行 Erlang Escript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030838/

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