配置 Erlang 以使用 SSL

Posted

技术标签:

【中文标题】配置 Erlang 以使用 SSL【英文标题】:Configuring Erlang to work with 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? 【参考方案1】:

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

application:start(ssl)

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

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

成功了:)

【讨论】:

以上是关于配置 Erlang 以使用 SSL的主要内容,如果未能解决你的问题,请参考以下文章

配置 Erlang 以使用 SSL

C#.NetCore RabbitMQ和ErLang安装使用

消息队列集群配置

Erlang / Rebar3 - 如何添加应用程序以发布但不启动它?

RabbitMQ消息队列集群配置

rabbitmq集群部署及配置