为了增强安全性,您可以为 Horizon Cloud Connector 虚拟设备配置自定义的 CA 签名证书。

前提条件

  • 确认有 PEM 格式的完整证书链可用。
  • 确保使用私钥而不是密码短语生成 PEM 文件。
  • 确认所颁发的证书中包含 FQDN 和主体备用名称。

过程

  1. 打开与已部署的 Horizon Cloud Connector 虚拟设备进行的 SSH 会话。
  2. 复制目录 /root/server.crt 中的 CA 签名证书。
  3. 复制目录 /root/server.key 中的 CA 签名密钥。
  4. 备份现有证书。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      cp /opt/container-data/certs/hze-nginx/server.crt /opt/container-data/certs/hze-nginx/server.crt.orig
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      cp /etc/nginx/ssl/server.crt /etc/nginx/ssl/server.crt.orig
  5. 备份现有密钥。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      cp /opt/container-data/certs/hze-nginx/server.key /opt/container-data/certs/hze-nginx/server.key.orig
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      cp /etc/nginx/ssl/server.key /etc/nginx/ssl/server.key.orig
  6. 复制现有 nginx conf 文件。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      cp /opt/container-data/conf/hze-nginx/nginx.conf /opt/container-data/conf/hze-nginx/nginx.conf.orig
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
  7. 复制您的虚拟设备版本相应目录中的 CA 证书。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      cp /root/server.crt /opt/container-data/certs/hze-nginx/server.crt
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      cp /root/server.crt /etc/nginx/ssl/server.crt
  8. 复制您的虚拟设备版本相应目录中的 CA 证书密钥文件。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      cp /root/server.key /opt/container-data/certs/hze-nginx/server.key
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      cp /root/server.key /etc/nginx/ssl/server.key
  9. 确认证书和密钥文件的所有者和权限。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      chown -R hze-nginx:hze-nginx /opt/container-data/certs/hze-nginx 
      chmod 644 /opt/container-data/certs/hze-nginx/server.crt 
      chmod 600 /opt/container-data/certs/hze-nginx/server.key
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      chown -R root:root /etc/nginx/ssl
      chmod -R 600 /etc/nginx/ssl
  10. 确认证书中颁发的 FQDN 与位于 nginx 配置文件内的服务器侦听 443 块中的服务器名称指令相匹配。
    • Horizon Cloud Connector 版本 1.4 或更高版本)nginx 配置文件位于 /opt/container-data/conf/hze-nginx/nginx.conf
    • Horizon Cloud Connector 版本 1.3 或更低版本)nginx 配置文件位于 /etc/nginx/nginx.conf
  11. 验证并重新启动 nginx
    • Horizon Cloud Connector 版本 2.0 或更高版本)请使用以下命令:
      kubectl rollout restart daemonset hze-nginx -n hze-system
    • Horizon Cloud Connector 版本 1.4 至 1.10)请使用以下命令:
      docker exec -i hze-nginx sudo nginx -t 
      systemctl restart hze-nginx
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      nginx -t
      systemctl restart nginx
  12. 在欢迎屏幕中更新 SSL 指纹。
    • Horizon Cloud Connector 版本 2.0 或更高版本)请使用以下命令:
      /opt/vmware/bin/configure-welcome-screen.py
      /usr/bin/killall --quiet vami_login
    • Horizon Cloud Connector 版本 1.4 至 1.10)请使用以下命令:
      docker exec -i hze-core sudo /opt/vmware/bin/configure-welcome-screen.py 
      /usr/bin/killall --quiet vami_login
  13. 通过在 Web 浏览器中重新加载 Horizon Cloud Connector 用户界面 URL,对新证书进行测试。
  14. (可选) 如果该证书可正常使用,请移除备份的文件。
    • Horizon Cloud Connector 版本 1.4 或更高版本)请使用以下命令:
      rm /opt/container-data/certs/hze-nginx/server.crt.orig 
      rm /opt/container-data/certs/hze-nginx/server.key.orig 
      rm /opt/container-data/conf/hze-nginx/nginx.conf.orig
    • Horizon Cloud Connector 版本 1.3 或更低版本)请使用以下命令:
      rm /etc/nginx/ssl/server.crt.orig
      rm /etc/nginx/ssl/server.key.orig
      rm /etc/nginx/nginx.conf.orig
  15. 移除根目录中复制的 CA 证书和密钥文件。
    使用以下命令:
    rm /root/server.crt
     rm /root/server.key