4.6. TLS Erlang 分布¶
主要目的是允许在节点之间使用 TLS 进行 Erlang 分布,并能够使用 TCP 连接到某些节点。TLS 分布将增强节点之间数据迁移过程中的数据安全性。
本节介绍如何启用 TLS 分布以进行额外的验证和安全性。
4.6.1. 生成证书¶
为了使 TLS 正确工作,必须至少指定一个公钥和一个证书。在以下示例(couch_ssl_dist.conf)中,PEM 文件包含 certificate
及其 private key
。
[{server, [{certfile, "</path/to/erlserver.pem>"}, {secure_renegotiate, true}]}, {client, [{secure_renegotiate, true}]}].
以下命令是生成证书(PEM)文件的示例。
$ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem $ cat key.pem cert.pem > erlserver.pem && rm key.pem cert.pem注意
这不是对特定到期期限、密钥大小或算法的认可。
4.6.2. 配置设置¶
要启用 TLS 分布,请确保在 vm.args
中设置自定义参数。
# Don't forget to override the paths to point to your cert and conf file! -proto_dist couch -couch_dist no_tls \"[email protected]\" -ssl_dist_optfile <path/to/couch_ssl_dist.conf>注意
no_tls
的默认值为false
。如果用户未设置任何no_tls
标志,则所有节点将使用TCP
。为了确保“搜索”功能正常工作,请确保为
clouseau
节点设置no_tls
选项。默认情况下,这将是"[email protected]"
。
no_tls
标志可以具有以下值
仅使用
TLS
,设置为false
(默认值),例如-couch_dist no_tls false
仅使用
TCP
,设置为true
,例如-couch_dist no_tls true
指定某些节点使用
TCP
,其他节点使用TLS
,例如# Specify node1 and node2 to use TCP, others use TLS -couch_dist no_tls \"[email protected]\" -couch_dist no_tls \"[email protected]\"
# Any nodes end with "@127.0.0.1" will use TCP, others use TLS -couch_dist no_tls \"*@127.0.0.1\"
注意
星号(*):匹配正则表达式的零个或多个出现。
问号(?):匹配正则表达式的零个或一个出现。
4.6.3. 连接到 Remsh¶
使用连接到节点的远程 shell 启动 Erlang。
如果节点使用
TCP
$ ./remsh
如果节点使用
TLS
$ ./remsh -t <path/to/couch_ssl_dist.conf>