我有一个小escript文件连接到一个节点和一些rpc调和的东西...

它的工作的现短期或longnames而是依赖于标准http通讯设备分布朗.

我想用它但与https/SSL进行分配。

启动一个'正常'朗系统与SSL你必须通过在各种标志要告诉爱尔兰的运行方式,作为 文档 建议:

$ 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 运行朗文件作为一个壳脚本文件。

我的问题是:

  • 是否有可能获得二郎'环境'在其escript运行使用安全的分发机制,而不是默认的一个吗?
  • 如果是这样,我该怎么做?
有帮助吗?

解决方案

你不需要设置这些标志的通过环境,还可以通过他们直接来 erl, 见 ch。1.4在这里. 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"]}]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top