配置Erlang以使用SSL

sco*_*man 9 erlang ssl

Erlang版本:R13B01

目前我正努力让Erlang使用SSL.编程部分很简单,但现在启动系统启用SSL不是.

遵循Erlang SSL文档:

1 - 制作start_ssl.rel文件

{release, {"OTP  APN 181 01","R13B01"}, {erts, "5.7.2"},
 [{kernel,"2.13.2"},
  {stdlib,"1.16.2"},
  {sasl,"2.1.6"},
  {os_mon,"2.2.2"},
  {ssl,"3.10.3"}]}.
Run Code Online (Sandbox Code Playgroud)

2 - 执行以下命令

1> systools:make_script("start_ssl",[]).
Run Code Online (Sandbox Code Playgroud)

根据文档,运行shell将输出此信息(此输出来自docs,而不是我的):

$ erl -boot /home/me/ssl/start_ssl
Erlang (BEAM) emulator version 5.0

Eshell V5.0  (abort with ^G)
1> whereis(ssl_server).
<0.32.0>
Run Code Online (Sandbox Code Playgroud)

但是,我收到了这个:

erl -boot start_ssl
Erlang R13B01 (erts-5.7.2) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
1> whereis(ssl_server).
undefined
2> 
Run Code Online (Sandbox Code Playgroud)

所以,就目前而言,剩下的步骤也是失败的.遗憾的是,网络上没有相同问题的文档或论坛帖子.

有小费吗?

sco*_*man 4

好吧,经过一番尝试和错误,我成功启动了系统:

application:start(ssl)
Run Code Online (Sandbox Code Playgroud)

并在创建侦听套接字时传递所有证书

ssl:listen(Port, ?TCP_OPTIONS ++ [{ip, Host},{verify, 0},
                                       {depth,  0}, 
                                       {cacertfile, Cacertfile}, 
                                       {certfile,   Certfile},
                                       {keyfile,    Keyfile}]) 
Run Code Online (Sandbox Code Playgroud)

有效 :)