配置 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的主要内容,如果未能解决你的问题,请参考以下文章
C#.NetCore RabbitMQ和ErLang安装使用