【问题标题】:Configuring Erlang to work with SSL配置 Erlang 以使用 SSL
【发布时间】:2011-01-13 12:34:26
【问题描述】:

Erlang 版本:R13B01

目前我正在努力让 Erlang 与 SSL 一起工作。编程部分很简单,但现在启动启用 SSL 的系统并不容易。

关注Erlang SSL documentation

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"}]}.

2 - 执行以下命令

1> systools:make_script("start_ssl",[]).

根据文档,运行 shell 会输出这个(这个输出来自文档,不是我的):

$ 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>

但是,我收到的是这个:

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> 

因此,目前,其余步骤也失败了。遗憾的是,网络上没有相同问题的文档或论坛帖子。

有什么建议吗?

【问题讨论】:

  • 我没有答案给你,但我可以做一些 cmets。首先,引导脚本需要一个 .rel 扩展名,而不是 .erl。其次,BEAM 5.0 真的非常老了——大约是 10 年前的 R7B。您遇到的问题可能是由于过去的工作方式与现在的工作方式不匹配。我建议在邮件列表中询问了解现在情况的人是否可以更新文档。
  • 抱歉,.erl 是输入错误,已更正。 Beam 5.0 来自文档,我使用的是 B13B01 附带的一个
  • 我知道。我是说那个页面显然是在 R7 最新时最后一次被触摸的,所以难怪它所说的不再有效。
  • 应用程序:开始(ssl)。导致“ok”回复,并启动了一堆 ssl 进程。但是根本没有启动 ssl_server
  • 在这里测试过。结果相同。由于该指南已经过时,可能不再有ssl_server 进程。您是否尝试过简单地使用 SSL?

标签: ssl erlang


【解决方案1】:

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

application:start(ssl)

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

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

成功了:)

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 2019-08-05
    • 2016-12-21
    • 1970-01-01
    • 2011-05-17
    • 2014-05-07
    • 2014-02-07
    • 2019-03-19
    • 2018-05-07
    相关资源
    最近更新 更多