作为安装后过程的一部分,可能需要设置安全套接字层 (SSL) 证书。安装 SaltStack Config 时,设置 SSL 证书是可选操作,但建议进行设置。

开始前

设置 SSL 证书是应按特定顺序执行一系列步骤中的一个安装后步骤。首先,完成其中一个安装方案,然后阅读以下安装后页面:

设置并配置 SSL 证书

要创建 SSL 证书,请执行以下操作:

  1. 要在安装后配置 SSL,必须安装 python36-pyOpenSSL 软件包。此步骤通常在安装之前完成。如果在安装之前无法安装,可以现在安装。有关检查和安装此依赖项的说明,请参见所需的 SaltStack Config依赖关系
  2. 为 RaaS 服务的证书文件夹创建并设置权限。
    sudo mkdir -p /etc/raas/pki
    sudo chown raas:raas /etc/raas/pki
    sudo chmod 750 /etc/raas/pki
  3. 使用 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
  4. 要启用与 SaltStack Config 用户界面的 SSL 连接,请生成 PEM 编码的 SSL 证书,或确保您有权访问现有的 PEM 编码证书。
  5. 将上一步中生成的 .crt.key 文件保存到 RaaS 节点上的 /etc/pki/raas/certs 中。
  6. 在文本编辑器中打开 /etc/raas/raas,更新 RaaS 服务配置。配置以下值,并将 <filename> 替换为您的 SSL 证书文件名:
    tls_crt:/etc/pki/raas/certs/<filename>.crt
    tls_key:/etc/pki/raas/certs/<filename>.key
    port:443
  7. 重新启动 RaaS 服务。
    sudo systemctl restart raas
  8. 验证 RaaS 服务是否正在运行。
    sudo systemctl status raas
  9. 在 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 AutomationSaltStack Config 进行身份验证。建议做法是改为使用受信任证书颁发机构签名的证书。

如果您选择使用自签名证书或未正确签名的证书,则可能会使您的系统面临严重的安全违规风险。使用此过程时,请谨慎进行。

如果遇到此问题,并且您的环境需要继续使用由非标准证书颁发机构签名的证书,则以下两个方案可供您使用。

第一种选项是将 vRealize Automation 根证书颁发机构 (CA) 添加到 SaltStack Config 环境中。第二种选项是在 vRealize Automation 中禁用 SaltStack Config 证书验证。

将 vRealize Automation 根证书颁发机构 (CA) 添加到 SaltStack Config 环境

此过程要求:

  • Root 访问权限
  • 能够通过 SSH 访问 RaaS 服务器
注:

最佳的安全做法是,仅将此级别的访问权限授予组织中最信任和最资深的人员。请注意限制 root 用户对环境的访问。

您可能会发现,创建专用证书颁发机构并使用该证书颁发机构签名您自己的 vRealize Automation 证书比使用自签名证书更容易。这种方法的优点是,对于所需的每个 vRealize Automation 证书,只需要执行此过程一次。否则,您必须针对创建的每个 vRealize Automation 证书执行此过程。有关创建专用证书颁发机构的详细信息,请参见如何使用自己的证书颁发机构签名证书请求 (Stack Overflow)

要将非标准证书颁发机构签名的证书添加到 SaltStack Config 中的证书颁发机构列表,请执行以下操作:

  1. 尝试在浏览器中打开 vRealize Automation Web 界面。证书应在浏览器窗口和 URL 显示中显示警告消息。
  2. 运行以下脚本以获取并安装证书,并将 <vra_fqdn> 替换为您的 vRealize Automation FQDN:
    echo -n | openssl s_client -connect <vra_fqdn>:443 -showcerts | tac | sed -ne '1,/-BEGIN CERTIFICATE-/p' | tac | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee -a /etc/pki/tls/certs/ca-bundle.crt && sed -i.bak '/ExecStart\=/iEnvironment=REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt' /usr/lib/systemd/system/raas.service && systemctl daemon-reload && systemctl stop raas && rm /var/log/raas/raas && systemctl start raas && echo -e 'Starting RaaS Service and tailing the log to see if errors persist. \n Please Wait' && sleep 10 && echo -e 'Relaunch the web browser and navigate to the vRASSC login page and monitor this screen for further errors.\n CTRL+C to exit the tail' && tail -f /var/log/raas/raas
  3. 登录到 SaltStack Config Web 界面,验证此解决方案是否已解决该问题。如果问题已解决,SaltStack Config 将显示仪表板页面。

禁用证书验证

要在 SaltStack Config 中禁用证书验证,请执行以下操作:

小心: 对于 SaltStack Config,禁用证书验证不是推荐或支持的生产部署选项。证书验证可提高安全性,应将其作为您的标准做法。作为不推荐的部署选项,VMware 将无法帮助禁用证书验证或由此部署选项导致的问题。如果您选择禁用此功能,请自行承担相关风险。
  1. 打开 RaaS 节点上存储在 /etc/raas/raas 中的 RaaS 配置文件。
  2. vra 设置中,将 validate_ssl 的值设置为 false
  3. 运行 systemctl restart raas 以重新启动 RaaS 服务。
  4. 登录到 SaltStack Config Web 界面,验证此解决方案是否已解决该问题。如果问题已解决,SaltStack Config 将显示仪表板页面。

后续操作

设置 SSL 证书后,可能还需要完成其他安装后步骤。

如果您是 SaltStack SecOps 客户,则下一步是设置这些服务。有关详细信息,请参见配置 SaltStack SecOps

如果已完成所有必要的安装后步骤,下一步是将 SaltStack ConfigvRealize Automation SaltStack SecOps 集成。有关详细信息,请参见在 vRealize Automation 中配置 SaltStack Config 集成