我尝试通过以下方式为Saltstack master和minion启用sslhttps://docs.saltstack.com/en/latest/ref/configuration/master.html#ssl但我不确定如何验证它是否使用SSL .
我在主配置中添加了这个:
ssl:
keyfile: /etc/salt/ssl/master/key.pem
certfile: /etc/salt/ssl/master/cert.pem
ssl_version: PROTOCOL_TLSv1_2
我在minion中添加了类似的设置。但是,当我使用 openssl 测试端口时:
openssl s_client -connect <master ip>:4505 -debug
,我得到SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
。看来 SSL 根本没有启用。如何验证SSL是否启用?主人和仆从的沟通似乎很好。我只需要验证它是否使用 SSL。我在 Centos 7 上使用 python 2.7。我需要安装任何额外的软件包吗?
您还需要添加
transport: tcp
那么您至少会在
/var/log/salt/master
或 /var/log/salt/minion
中收到一些与 SSL 相关的错误
您可以使用
tcpdump
捕获一些流量并在wireshark中对其进行分析,以验证连接是否经过ssl加密。
这篇文章出现在我有关让 SaltStack 使用 SSL 的搜索中 - 自最初的答案以来,事情已经发生了一些变化。
我们的特殊需求需要服务器和客户端证书,最终结果如下:
在主机上您需要如下设置
ssl
keyfile: <path to master key file>
certfile: <path to master certificate>
ca_certs: <path to minion CAs>
cert_reqs: CERT_REQUIRED
ssl_version: PROTOCOL_TLS_SERVER
然后是小黄人
ssl
keyfile: <path to minion key file>
certfile: <path to minion certificate>
ca_certs: <path to master CAs>
cert_reqs: CERT_REQUIRED
ssl_version: PROTOCOL_TLS_CLIENT
transport = tls
选项不是必需的 - 实际上会阻止 salt
命令在主机上正确运行,因为它会阻止该命令通过 unix 套接字进行连接。
在我们的测试中,我们还发现minion用来联系master的IP地址需要在master的证书Subject Alternative Name中,否则minion将无法验证master的证书。