作为安装后过程的一部分,可能需要设置安全套接字层 (SSL) 证书。安装 SaltStack Config 时,设置 SSL 证书是可选操作,但建议进行设置。
开始前
设置 SSL 证书是应按特定顺序执行一系列步骤中的一个安装后步骤。首先,完成其中一个安装方案,然后阅读以下安装后页面:
设置并配置 SSL 证书
要创建 SSL 证书,请执行以下操作:
- 要在安装后配置 SSL,必须安装
python36-pyOpenSSL
软件包。此步骤通常在安装之前完成。如果在安装之前无法安装,可以现在安装。有关检查和安装此依赖项的说明,请参见安装或升级 Salt。 - 为 RaaS 服务的证书文件夹创建并设置权限。
sudo mkdir -p /etc/raas/pki sudo chown raas:raas /etc/raas/pki sudo chmod 750 /etc/raas/pki
- 使用 Salt 为 RaaS 服务生成密钥,或提供您自己的密钥。
sudo salt-call --local tls.create_self_signed_cert tls_dir=raas sudo chown raas:raas /etc/pki/raas/certs/localhost.crt sudo chown raas:raas /etc/pki/raas/certs/localhost.key sudo chmod 400 /etc/pki/raas/certs/localhost.crt sudo chmod 400 /etc/pki/raas/certs/localhost.key
- 要启用与 SaltStack Config 用户界面的 SSL 连接,请生成 PEM 编码的 SSL 证书,或确保您有权访问现有的 PEM 编码证书。
- 将上一步中生成的
.crt
和.key
文件保存到 RaaS 节点上的/etc/pki/raas/certs
中。 - 在文本编辑器中打开
/etc/raas/raas
,更新 RaaS 服务配置。配置以下值,并将<filename>
替换为您的 SSL 证书文件名:tls_crt:/etc/pki/raas/certs/<filename>.crt tls_key:/etc/pki/raas/certs/<filename>.key port:443
- 重新启动 RaaS 服务。
sudo systemctl restart raas
- 验证 RaaS 服务是否正在运行。
sudo systemctl status raas
- 在 Web 浏览器中,导航到组织的自定义应用程序 SaltStack Config URL 并输入凭据,确认可以连接到用户界面。有关登录的详细信息,请参见首次登录并更改默认凭据。
现在已为 SaltStack Config 设置 SSL 证书。
更新 SSL 证书
有关更新 SaltStack Config 的 SSL 证书的说明,请参见 VMware 知识库。有关详细信息,请参见如何更新 SaltStack Config 的 SSL 证书。
对 vRealize Automation 使用自签名证书的 SaltStack Config 环境进行故障排除
此解决办法适用于使用非标准证书颁发机构签名的证书进行 vRealize Automation 部署的客户。
SaltStack Config 可能会遇到以下症状:
- 首次打开 vRealize Automation 时,Web 浏览器会在 URL 旁边或显示页面中显示一条安全警告,指明无法验证证书。
- 尝试在 Web 浏览器中打开 SaltStack Config 用户界面时,可能会显示 403 错误或空白屏幕。
如果 vRealize Automation 部署使用非标准证书颁发机构签名的证书,则可能会导致出现这些症状。要验证这是否导致 SaltStack Config 显示空白屏幕,请通过 SSH 登录到托管 SaltStack Config 的节点,然后查看 RaaS 日志文件 (/var/log/raas/raas
)。如果发现回溯追踪错误消息,指明不允许使用自签名证书,以下解决办法可能会解决此问题。
最佳的安全做法是,不将生产环境设置为使用自签名证书或未正确签名的证书对 vRealize Automation 或 SaltStack Config 进行身份验证。建议做法是改为使用受信任证书颁发机构签名的证书。
如果您选择使用自签名证书或未正确签名的证书,则可能会使您的系统面临严重的安全违规风险。使用此过程时,请谨慎进行。
如果遇到此问题,并且您的环境需要继续使用非标准证书颁发机构签名的证书,则解决方案是将 vRealize Automation 证书 CA 添加到 SaltStack Config 环境,如以下解决办法中所述。
此解决办法需要:
- Root 访问权限
- 能够通过 SSH 访问 RaaS 服务器
最佳的安全做法是,仅将此级别的访问权限授予组织中最信任和最资深的人员。请注意限制 root 用户对环境的访问。
您可能会发现,创建专用证书颁发机构并使用该证书颁发机构签名您自己的 vRealize Automation 证书比使用自签名证书更容易。这种方法的优点是,对于所需的每个 vRealize Automation 证书,只需要执行此过程一次。否则,您必须针对创建的每个 vRealize Automation 证书执行此过程。有关创建专用证书颁发机构的详细信息,请参见如何使用自己的证书颁发机构签名证书请求 (Stack Overflow)。
要将非标准证书颁发机构签名的证书添加到 SaltStack Config 中的证书颁发机构列表,请执行以下操作:
- 尝试在浏览器中打开 vRealize Automation Web 界面。证书应在浏览器窗口和 URL 显示中显示警告消息。
- 下载所需的证书。
- 对于 Chrome 浏览器:单击 URL 显示中的“不安全”警告以打开菜单。选择“证书 (无效)”。将缺少的证书拖放到本地计算机的文件资源管理器或查找器进行保存。选择证书签名者 (CA)(如果可用)。单击证书图标,然后将其拖动到本地计算机的文件资源管理器中。如果文件扩展名不是 .pem (.crt .cer .der),请使用以下命令将其转换为 .pem 格式:
openssl x509 -inform der -in certificate.cer -out certificate.pem
- 对于 Firefox 浏览器:单击 URL 显示中的警告图标以打开菜单。选择“不安全连接”>“更多信息”。在对话框中,单击“查看证书”。单击缺少的证书,将证书下载到本地计算机的文件系统中。
- 对于 Chrome 浏览器:单击 URL 显示中的“不安全”警告以打开菜单。选择“证书 (无效)”。将缺少的证书拖放到本地计算机的文件资源管理器或查找器进行保存。选择证书签名者 (CA)(如果可用)。单击证书图标,然后将其拖动到本地计算机的文件资源管理器中。如果文件扩展名不是 .pem (.crt .cer .der),请使用以下命令将其转换为 .pem 格式:
- 通过 SSH 登录到 RaaS 服务器(如果尚未登录)。
- 将证书文件附加到以下目录中文件的末尾:
/etc/pki/tls/certs/ca-bundle.crt
。您可以使用以下命令将证书附加到文件末尾,并将示例文件替换为您的实际文件名:cat <certificate-file>.crt >> /etc/pki/tls/certs/ca-bundle.crt
注:也可以使用此命令复制扩展名为
.pem
的文件。 - 导航到
/usr/lib/systemd/system
目录,然后在编辑器中打开raas.service
文件。将以下行添加到此文件中 ExecStart 行上方的任意位置:Environment=REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt
- 重新加载守护进程,然后使用这些命令重新启动 RaaS:
systemctl daemon-reload systemctl stop raas rm /var/log/raas/raas systemctl start raas tail -f /var/log/raas/raas
注:使用
tail -f /var/log/raas/raas
连续显示 RaaS 日志文件,这可能有助于进行故障排除。 - 登录到 SaltStack Config Web 界面,验证此解决方案是否已解决该问题。如果问题已解决,SaltStack Config 将显示仪表板页面。
后续操作
设置 SSL 证书后,可能还需要完成其他安装后步骤。
如果您是 SaltStack SecOps 客户,则下一步是设置这些服务。有关详细信息,请参见配置 SaltStack SecOps。
如果已完成所有必要的安装后步骤,下一步是将 SaltStack Config 与 vRealize Automation SaltStack SecOps 集成。有关详细信息,请参见 创建 SaltStack Config 与 vRealize Automation 集成。