文档目录

简介

HTTP和HTTPS是互联网用于传输数据的主要协议。通过HTTP协议传输的数据没有经过任何形式的加密,这就意味着在HTTP连接上传输的所有信息,包括用户名、密码、Cookie及其它敏感内容,都随时可能被泄露、窃取、篡改。

HTTPS是一种基于SSL协议的网站加密传输协议,提供了端到端的数据加密,确保了传输过程中的数据隐私性和完整性。ZStack Cloud支持HTTPS方式登录UI管理界面,进一步提升系统安全性。

本教程分为UI和命令行配置方式,分别介绍HTTPS登录UI的使用方法。

UI配置方式

以下章节主要介绍如何通过云平台证书管理功能直观配置HTTPS,包括如何添加第三方证书、如何添加系统自签证书、如何更新证书、以及如何恢复HTTP方式登录UI。

添加第三方证书

本章节将介绍如何通过UI界面导入第三方证书。

前提条件

本场景中的信息基于以下资源或权限要求:
  • 用户已部署最新的ZStack Cloud环境。
  • 用户需具备admin或平台管理员权限才能配置证书。
  • 用户已持有有效的商用CA签发证书。
  • 证书文件和证书链仅支持CRT或PEM格式、证书私钥仅支持KEY或PEM格式。
    Note: 若用户持有的证书不符合格式要求,请自行进行格式转换。

操作步骤

  1. 登录ZStack Cloud
  2. 点击设置 > 系统与安全 > 证书管理
  3. 证书管理页面,点击添加证书
  4. 导入证书页面,可参考以下信息完成配置:
    • 导入模式:选择第三方证书
    • 证书文件:导入或填入证书公钥
      Note:
      • 仅支持CTR格式和PEM格式。
      • 证书内容需以"----BEGIN CERTIFICATE----"开头,以"----END CERTIFICATE----"结尾。
    • 证书私钥:导入或填入证书私钥
      Note:
      • 仅支持KEY格式和PEM格式。
      • 证书私钥内容需以"----BEGIN (RSAIEC) PRIVATE KEY----"开头,以"----END (RSAIEC) PRIVATE KEY----"结尾。
    • 证书链:导入或填入证书链
      Note:
      • 仅支持CTR格式和PEM格式。
      • 证书链的证书内容需以"----BEGIN CERTIFICATE----"开头,以"----END CERTIFICATE----"结尾。
    • HTTP重定向:可选项,默认关闭。开启后,系统自动将请求从HTTP地址的5000端口重定向到HTTPS地址的5443端口。
    图 1所示:
    图 1. 添加第三方证书


  5. 确认配置信息无误后,点击确定
  6. 云平台自动刷新,并可通过HTTPS协议访问UI。
    Note: 配置证书后会重新建立会话,需重新登录UI界面。

添加系统自签证书

本章节将介绍如何通过UI界面使用系统自签证书。

前提条件

本场景中的信息基于以下资源或权限要求:
  • 用户已部署最新的ZStack Cloud环境。
  • 用户需具备admin或平台管理员权限才能配置证书。

操作步骤

  1. 登录ZStack Cloud
  2. 点击设置 > 系统与安全 > 证书管理
  3. 证书管理页面,点击添加证书
  4. 导入证书页面,可参考以下信息完成配置:
    • 导入模式:选择自签名证书
    • 有效期:可选3个月、1年、3年、5年、10年,默认为10年
    • HTTP重定向:可选项,默认关闭。开启后,系统自动将请求从HTTP地址的5000端口重定向到HTTPS地址的5443端口
    • 自定义证书信息:可选项,默认关闭。开启后,可自定义系统自签证书信息
      • 公用名称 (CN):可选项,设置公用名称,默认为localhost

        长度为1~64个字符,仅支持输入英文大小写字母、数字和以下特殊字符:~`@#$%^&*()-_+={}[]|:;'<>.?/

      • 企业单位名称 (O):可选项,设置企业单位名称,默认为localhost

        长度为1~64个字符,仅支持输入英文大小写字母、数字和以下特殊字符:~`@#$%^&*()-_+={}[]|:;'<>.?/

      • 部门 (OU):可选项,设置部门

        长度为1~64个字符,仅支持输入英文大小写字母、数字和以下特殊字符:~`@#$%^&*()-_+={}[]|:;'<>.?/

      • 国家/地区 (C):可选项,设置国家/地区,仅支持设置为CN
      • 省/自治区/直辖市 (S):可选项,设置省/自治区/直辖市

        长度为1~128个字符,仅支持输入中文、英文大小写字母、数字和以下特殊字符:~`@#$%^&*()-_+={}[]|:;'<>.?/

      • 城市 (L):可选项,设置城市

        长度为1~128个字符,仅支持输入中文、英文大小写字母、数字和以下特殊字符:~`@#$%^&*()-_+={}[]|:;'<>.?/

      • 电子邮箱:可选项,设置电子邮箱地址
    图 2所示:
    图 2. 添加系统自签证书


  5. 确认配置信息无误后,点击确定
  6. 云平台自动刷新,并可通过HTTPS协议访问UI。
    Note: 配置证书后会重新建立会话,需重新登录UI界面。

更新证书

本章节将介绍如何通过UI界面更新证书。

前提条件

本场景中的信息基于以下资源或权限要求:
  • 用户已部署最新的ZStack Cloud环境。
  • 用户需具备admin或平台管理员权限才能配置证书。
  • 用户已添加的证书发生了变更,需及时同步更新证书信息。

操作步骤

  1. 登录ZStack Cloud
  2. 点击设置 > 系统与安全 > 证书管理
  3. 证书管理页面,点击更新证书
    图 3所示:
    图 3. 更新证书


  4. 更新证书配置信息后,点击确定,即可更新证书。
    Note: 更新证书时,系统会检测当前证书路径,并将证书信息写入该路径。

恢复HTTP方式登录UI

本章节将介绍如何通过UI界面恢复HTTP方式登录UI。

前提条件

本场景中的信息基于以下资源或权限要求:
  • 用户已部署最新的ZStack Cloud环境。
  • 用户需具备admin或平台管理员权限才能配置证书。
  • 用户已配置SSL证书。

操作步骤

  1. 登录ZStack Cloud
  2. 点击设置 > 系统与安全 > 证书管理
  3. 证书管理页面,点击恢复HTTP
    图 4所示:
    图 4. 恢复HTTP方式登录UI


  4. 在二次确认弹窗中,点击确定,即可恢复HTTP方式登录UI。
    Note: 恢复HTTP方式登录UI会重新建立会话,需重新登录。恢复后将通过HTTP协议登录UI界面。

命令行配置方式

以下章节将从单管理节点和双管理节点物理机高可用两个场景,分别介绍HTTPS方式登录UI的命令行配置方法。
  • HTTPS方式默认不启用。
  • 启用HTTPS后,系统默认支持5443端口,且支持自定义指定其它端口登录。
  • 启用HTTPS后,如使用HTTP方式的5000端口登录,将会自动重定向到HTTPS方式。目前仅支持HTTP的5000端口自动重定向到HTTPS。
  • 系统默认支持PKCS12格式证书。目前仅提供PKCS12/JKS格式证书支持,如使用其它格式证书,请自行格式转换。

单管理节点场景

本章节主要介绍单管理节点场景下,如何使用默认HTTPS方式登录UI、如何使用自定义HTTPS方式登录UI,以及如何恢复HTTP方式登录UI。

默认HTTPS方式

背景信息

初始状态下,支持使用系统默认证书以HTTPS方式登录UI。

操作步骤

  1. 在管理节点执行以下命令,停止管理节点服务和UI服务
    zstack-ctl stop
  2. 确保VNC控制台支持HTTPS功能。
    1. 执行以下命令,查看证书的路径和私钥密码(初始状态下均为系统默认值)。
      zstack-ctl show_ui_config
      例如:
      [root@localhost ~]# zstack-ctl show_ui_config
      db_url = jdbc:mysql://10.0.233.184:3306
      db_username = zstack_ui
      db_password = zstack.ui.password
      mn_host = 127.0.0.1
      mn_port = 8080
      webhook_host = 127.0.0.1
      webhook_port = 5000
      server_port = 5000
      log = /usr/local/zstack/apache-tomcat/logs
      enable_ssl = false
      ssl_keyalias = zstackui
      ssl_keystore = /usr/local/zstack/zstack-ui/ui.keystore.p12 //证书路径
      ssl_keystore_type = PKCS12
      ssl_keystore_password = password //私钥密码
    2. 由于UI默认支持PKCS12格式证书,VNC控制台代理默认支持x509格式证书,如希望VNC控制台代理也能使用UI证书,需将PKCS12格式证书转换成x509格式。
      openssl pkcs12 -in /path/to/mykeystore.p12 -out ui.keystore.pem -nodes

      其中,/path/to/mykeystore.p12是PKCS12格式的证书,ui.keystore.pem是转换后x509格式的证书。

      例如:
      [root@localhost ~]# openssl pkcs12 -in /usr/local/zstack/zstack-ui/ui.keystore.p12 -out ui.keystore.pem -nodes
      Enter Import Password:
      MAC verified OK
    3. 进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties修改zstack.properties配置文件,将证书路径设置为绝对路径(绝对路径指向证书私钥密码文件)。
      consoleProxyCertFile = /usr/local/zstack/zstack-ui/ui.keystore.pem
  3. 执行以下命令,将基于默认配置自动生成证书,并使用默认证书以HTTPS方式登录UI,端口默认为5443。
    zstack-ctl config_ui --enable-ssl True
  4. 在管理节点执行以下命令,启动管理节点服务和UI服务
    zstack-ctl start
  5. 使用Chrome浏览器或FireFox浏览器进入ZStack Cloud管理界面(https://your_domain_name:5443),输入默认用户名和密码(admin/password),即可以默认HTTPS方式成功登录。
  6. 设置控制台代理地址。

    登录UI界面,ZStack Cloud主菜单,点击运营管理 > 访问控制 > 控制台代理按钮,将控制台代理设置为your_domain_name,确保控制台正常打开。

  7. 在管理节点执行以下命令,重启Zops服务,确保云平台上的物理机可以正常使用Web终端功能:
    zops restart

自定义HTTPS方式

背景信息

初始状态下,支持使用自定义证书以HTTPS方式登录UI。

操作步骤

  1. 准备好自定义证书,可使用相关工具生成自签证书,也可购买正规CA签发证书。
    如使用Keytool(Java数据证书管理工具)生成自签证书:
    mkdir certs
    
    keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore ./certs/keystore.p12 -validity 365
    例如:
    [root@localhost ~]# mkdir certs
    [root@localhost ~]# keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048 \
    -keystore ./certs/keystore.p12 -validity 365
    输入密钥库口令:
    再次输入新口令:
    您的名字与姓氏是什么?
      [Unknown]:  Jack Chen
    您的组织单位名称是什么?
      [Unknown]:  ZStack
    您的组织名称是什么?
      [Unknown]:  DOC
    您所在的城市或区域名称是什么?
      [Unknown]:  SH
    您所在的省/市/自治区名称是什么?
      [Unknown]:  SH
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  CN
    CN=Jack Chen, OU=Cloud, O=DOC, L=SH, ST=SH, C=CN是否正确?
      [否]:  是
    [root@localhost certs]# ls
    keystore.p12
  2. 在管理节点执行以下命令,停止管理节点服务和UI服务
    zstack-ctl stop
  3. 确保VNC控制台支持HTTPS功能。
    1. VNC控制台代理默认支持x509格式证书,如有需要,进行证书格式转换。
      如将PKCS12格式证书转换成x509格式:
      openssl pkcs12 -in /path/to/mykeystore.p12 -out ui.keystore.pem -nodes

      其中,/path/to/mykeystore.p12是PKCS12格式的证书,ui.keystore.pem是转换后x509格式的证书。

      例如:
      [root@localhost ~]# openssl pkcs12 -in /root/certs/keystore.p12 -out ui.keystore.pem -nodes
      Enter Import Password:
      MAC verified OK
    2. 修改zstack.properties配置文件,将证书路径设置为绝对路径(绝对路径指向证书私钥密码文件)。
      consoleProxyCertFile = /usr/local/zstack/zstack-ui/ui.keystore.pem
  4. 执行以下命令,自定义证书别名、证书路径、证书类型、私钥密码、HTTPS登录端口等信息,并使用自定义证书以HTTPS方式登录UI。
    zstack-ctl config_ui --enable-ssl True \
    --ssl-keyalias=*** --ssl-keystore=*** --ssl-keystore-type=*** \
    --ssl-keystore-password=*** --server-port=*** --webhook-port=***
    //将自定义参数信息记录到zstack.ui.properties配置文件
    //包括设置:启用HTTPS功能、证书别名、证书路径、证书类型、私钥密码、HTTPS登录端口
    
    zstack-ctl show_ui_config //可查看自定义参数信息
    
    zstack-ctl stop_ui
    zstack-ctl start_ui //每次以HTTPS方式登录UI
    例如:
    [root@localhost ~]# zstack-ctl config_ui --enable-ssl True \
    --ssl-keyalias=tomcat --ssl-keystore=/root/certs/keystore.p12 --ssl-keystore-type=PKCS12 \
    --ssl-keystore-password=password --server-port=8888
    [root@localhost ~]# zstack-ctl show_ui_config
    db_url = jdbc:mysql://10.0.233.184:3306
    db_username = zstack_ui
    db_password = zstack.ui.password
    mn_host = 127.0.0.1
    mn_port = 8080
    webhook_host = 127.0.0.1
    webhook_port = 5000
    server_port = 8888
    log = /usr/local/zstack/apache-tomcat/logs
    enable_ssl = true
    ssl_keyalias = tomcat
    ssl_keystore = /usr/local/zstack/zstack-ui/ui.keystore.p12.cp
    ssl_keystore_type = PKCS12
    ssl_keystore_password = password
    [root@localhost ~]# zstack-ctl stop_ui
    successfully stopped the UI server
    [root@localhost ~]# zstack-ctl start_ui
    successfully started UI server on the local host, PID[32166], https://10.0.233.184:8888
  5. 在管理节点执行以下命令,启动管理节点服务和UI服务。
    zstack-ctl start
  6. 使用Chrome浏览器或FireFox浏览器进入ZStack Cloud管理界面(https://your_domain_name:your_server_port),输入默认用户名和密码(admin/password),即可以自定义HTTPS方式成功登录。
    Note:
    若使用FireFox浏览器无法正常打开VNC控制台,请按如下步骤解决:
    1. 使用FireFox浏览器访问https://your_domain_name:4900
    2. 根据FireFox浏览器的提示,将https://your_domain_name:4900添加到安全例外(Exception);
    3. 使用FireFox浏览器打开VNC控制台。

    更多详情可参考FireFox官网文章

  7. 设置控制台代理地址。

    登录UI界面,ZStack Cloud主菜单,点击运营管理 > 访问控制 > 控制台代理按钮,将控制台代理设置为your_domain_name,确保控制台正常打开。

  8. 在管理节点执行以下命令,重启Zops服务,确保云平台上的物理机可以正常使用Web终端功能:
    zops restart

恢复HTTP方式登录UI

操作步骤

  1. 执行以下命令,将zstack.ui.properties中关于HTTPS功能的相关参数恢复到系统默认值。
    zstack-ctl config_ui --restore
  2. 执行zstack-ctl stop_uizstack-ctl start_ui即可。
    例如:
    [root@localhost ~]# zstack-ctl config_ui --restore
    [root@localhost ~]# zstack-ctl show_ui_config
    db_url = jdbc:mysql://10.0.233.184:3306
    db_username = zstack_ui
    db_password = zstack.ui.password
    mn_host = 127.0.0.1
    mn_port = 8080
    webhook_host = 127.0.0.1
    webhook_port = 5000
    server_port = 5000
    log = /usr/local/zstack/apache-tomcat/logs
    enable_ssl = false
    ssl_keyalias = zstackui
    ssl_keystore = /usr/local/zstack/zstack-ui/ui.keystore.p12
    ssl_keystore_type = PKCS12
    ssl_keystore_password = password
    [root@localhost ~]# zstack-ctl stop_ui
    successfully stopped the UI server
    [root@localhost ~]# zstack-ctl start_ui
    successfully started UI server on the local host, PID[43261], http://10.0.233.184:5000
  3. 使用Chrome浏览器或FireFox浏览器进入ZStack Cloud管理界面(http://your_machine_ip:5000),输入默认用户名和密码(admin/password),即可恢复默认HTTP方式成功登录。
  4. 设置控制台代理地址

    登录UI界面,ZStack Cloud主菜单,点击运营管理 > 访问控制 > 控制台代理按钮,将控制台代理设置为your_machine_ip,确保控制台正常打开。

后续操作

至此,HTTPS方式登录UI的使用方法介绍完毕。

双管理节点物理机高可用场景

本章节主要介绍双管理节点物理机高可用场景下,如何使用自定义HTTPS方式登录UI,以及如何恢复HTTP方式登录UI。

自定义HTTPS方式登录UI

背景信息

在双管理节点物理机高可用场景下,使用自定义证书以HTTPS方式登录UI。

操作步骤

  1. 准备多域名HTTPS证书。
    • 提前准备一个多域名HTTPS证书,例如:*.test.com
    • 将两个管理节点以及VIP分别绑定一个域名,例如:mna.test.com(管理节点A)、mnb.test.com(管理节点B)、mn.test.com(VIP)
  2. 停止管理节点服务和UI服务,并关闭zsha2服务。
    分别在两个管理节点执行以下命令,停止管理节点服务和UI服务,并关闭zsha2服务。
    [root@localhost ~]# zsha2 stop-node
  3. 确保VNC控制台支持HTTPS功能。

    两个管理节点均需确保VNC控制台支持HTTPS功能。详情可参考单管理节点场景自定义HTTPS方式章节步骤三

  4. 参数配置。

    分别在两个管理节点自定义证书别名、证书路径、证书类型、私钥密码、HTTPS登录端口等信息,并使用自定义证书以HTTPS方式登录UI。详情可参考单管理节点场景自定义HTTPS方式章节步骤四

  5. 启动管理节点服务和UI服务,并启动zsha2服务。
    分别在两个管理节点执行以下命令,启动管理节点服务和UI服务,并启动zsha2服务。
    [root@localhost ~]# zsha2 start-node
  6. 以自定义HTTPS方式登录UI。
    使用Chrome浏览器或FireFox浏览器进入ZStack Cloud管理界面(https://your_domain_name:your_server_port),输入默认用户名和密码(admin/password),即可以自定义HTTPS方式成功登录。
    Note:
    若使用FireFox浏览器无法正常打开VNC控制台,请按如下步骤解决:
    1. 使用FireFox浏览器访问https://your_domain_name:4900
    2. 根据FireFox浏览器的提示,将https://your_domain_name:4900添加到安全例外(Exception);
    3. 使用FireFox浏览器打开VNC控制台。

    更多详情可参考FireFox官网文章

  7. 设置控制台代理地址。

    分别登录两个管理节点UI界面,在ZStack Cloud 私有云主菜单,点击运营管理 > 访问控制 > 控制台代理按钮,将控制台代理设置为your_domain_name,例如:mna.test.com(管理节点A)、mnb.test.com(管理节点B),确保控制台正常打开。

  8. 分别在两个管理节点执行以下命令,重启Zops服务,确保云平台上的物理机可以正常使用Web终端功能:
    zops restart

恢复HTTP方式登录UI

背景信息

在双管理节点物理机高可用场景下,恢复HTTP方式登录UI。

操作步骤

  1. 停止管理节点服务和UI服务,并关闭zsha2服务。
    分别在两个管理节点执行以下命令,停止管理节点服务和UI服务,并关闭zsha2服务。
    [root@localhost ~]# zsha2 stop-node
  2. 关闭HTTPS功能。
    分别在两个管理节点执行以下命令,将zstack.ui.properties中关于HTTPS功能的相关参数恢复到系统默认值。
    [root@localhost ~]# zstack-ctl config_ui --restore
  3. 重新配置webhook-host。
    分别在两个管理节点执行以下命令,将webhook-host地址配置为双管理节点VIP地址。
    [root@localhost ~]# zstack-ctl config_ui --webhook-host VIP
  4. 启动管理节点服务和UI服务,并启动zsha2服务。
    分别在两个管理节点执行以下命令,启动管理节点服务和UI服务,并启动zsha2服务。
    [root@localhost ~]# zsha2 start-node
  5. 以HTTP方式登录UI。

    使用Chrome浏览器或FireFox浏览器进入ZStack Cloud管理界面(http://your_machine_ip:5000),输入默认用户名和密码(admin/password),即可恢复默认HTTP方式成功登录。

  6. 设置控制台代理地址。

    分别登录两个管理节点UI界面,在ZStack Cloud 私有云主菜单,点击运营管理 > 访问控制 > 控制台代理按钮,将控制台代理设置为your_machine_ip,确保控制台正常打开。

后续操作

至此,在双管理节点物理机高可用场景下,HTTPS方式登录UI的使用方法介绍完毕。

HTTPS方式登录UI使用教程 | 5.5.30 | ZStack Cloud · ZCF | ZStack 资源中心