更换双活仲裁的安全证书

前提条件

配置流程

图1 更换双活仲裁安全证书配置流程

操作步骤

  1. 导出仲裁服务器的证书请求文件。

    在仲裁软件的CLI页面下执行export tls_cert命令导出设备信息,系统将在仲裁服务器的“/opt/quorum_server/export_import”目录下生成“qs_certreq.csr”文件。

    admin:/>export tls_cert 
    Command executed successfully.     
    • 更换证书,需要在运行仲裁软件的用户模式下进行。
    • 仲裁软件安装后,建议仅对“/opt/quorum_server/export_import/”目录开放SFTP权限,实现安全证书的导入导出。

  2. 登录本端存储集群的DeviceManager,导出本端存储集群在“双活仲裁的安全证书”场景下的证书请求文件。具体操作参见导出证书请求文件(CSR)
  3. 登录远端存储集群的DeviceManager,导出远端存储集群在“双活仲裁的安全证书”场景下的证书请求文件。具体操作参见导出证书请求文件(CSR)
  4. 选择证书签发机构,使用证书请求文件生成证书。

    • 为保证设备间正常且安全的通信,仲裁服务器和存储集群必须使用同一证书签发机构签发证书。
    • 本节介绍了三种证书签发机构签发证书的方法,建议优先选择客户CA或可信的第三方CA,如果没有可用的CA,再选择仲裁服务器的内置CA或存储集群的内置CA。
    • 使用客户的CA或第三方CA签发证书:
      1. 将仲裁服务器的证书请求文件“qs_certreq.csr”发送给客户的证书签发机构或第三方证书签发机构生成证书。
      2. 将本端存储集群的证书请求文件发送给客户的证书签发机构或第三方证书签发机构生成证书。
      3. 将远端存储集群的证书请求文件发送给客户的证书签发机构或第三方证书签发机构生成证书。
    • 使用仲裁服务器的内置CA签发证书:
      • 单个签发证书,依次执行下方a~c三步完成仲裁服务器、本端存储集群和远端存储集群的证书签发:
        1. 将证书请求文件(以qs_certreq.csr为例)拷贝到仲裁服务器的“/opt/quorum_server/export_import”目录,将证书请求文件的归属用户与用户组修改为仲裁软件的安装用户与用户组,同时确保证书请求文件有读权限。
          chown quorumsvr:quorumsvr qs_certreq.csr

          其中quorumsvr用户为仲裁软件默认安装用户,如果安装时安装在其他用户下,这里请修改为对应的用户与用户组。

        2. 执行命令generate tls_cert csr=qs_certreq.csr [days=1095] [cert_name=qs_certreq.crt] [sign_algorithm=0]签发证书。
          • csr:必选,证书请求文件的文件名,文件应存储在特定位置,包括字母、数字、句点(.)、连字符(-)和下划线(_),并且必须以字母或数字开头,必须以“.csr”为结尾。
          • days:可选,证书有效期的天数,该值只能是数字。
          • cert_name:可选,指定签发证书的文件名。文件应存储在特定位置,包括字母、数字、句点(.)、连字符(-)和下划线(_),并且必须以字母或数字开头,必须以“.crt”为结尾。
          • sign_algorithm可选,用户需要的签名算法套件。与CA私钥的生成有关。可以选SHA256RSA 或者SHA256ECDSA。

            0. SHA256RSA

            1. SHA256ECDSA

          admin:/>generate tls_cert csr=qs_certreq.csr cert_name=qs_certreq.crt
          Command executed successfully. 
        3. 仲裁服务器的“/opt/quorum_server/export_import”目录中获取签发成功的证书和CA证书文件;qs_certreq.crt 是证书文件(也可以是指定的文件名),cps_ca.crt是CA证书文件。
      • 批量签发证书:
        1. 将仲裁服务器、本端存储集群和远端存储集群的证书请求文件全部(以qs_certreq.csr、qs_certreq_1.csr、qs_certreq_2.csr为例)拷贝到仲裁服务器的“/opt/quorum_server/export_import”目录,将证书请求文件的归属用户与用户组修改为仲裁软件的安装用户与用户组,同时确保证书请求文件有读权限。
          chown quorumsvr:quorumsvr *.csr

          其中quorumsvr用户为仲裁软件默认安装用户,如果安装时安装在其他用户下,这里请修改为对应的用户与用户组。

        2. 执行命令generate tls_cert_multi [days=1095] [sign_algorithm=0]批量签发证书。
          • 每个证书请求文件的命名格式符合要求时才能成功签发,要求为:文件应存储在特定位置,包括字母、数字、句点(.)、连字符(-)和下划线(_),并且必须以字母或数字开头,必须以“.csr”为结尾。
          • days:可选,证书有效期的天数,该值只能是数字。
          • sign_algorithm可选,用户需要的签名算法套件。与CA私钥的生成有关。可以选SHA256RSA 或者SHA256ECDSA。

            0. SHA256RSA

            1. SHA256ECDSA

          admin:/>generate tls_cert_multi
          [SUCCEED]generate cert for csr file:[qs_certreq.csr] succeed!
          [SUCCEED]generate cert for csr file:[qs_certreq_1.csr] succeed!
          [SUCCEED]generate cert for csr file:[qs_certreq_2.csr] succeed!
          ------all 3 csr files<succeed 3 files and failed 0 files>------
          Command executed successfully. 
        3. 仲裁服务器的“/opt/quorum_server/export_import”目录中获取签发成功的证书和CA证书文件;qs_certreq.crt、qs_certreq_1.crt、qs_certreq_2.crt是证书文件(与请求文件同名),cps_ca.crt是CA证书文件。
          ll /opt/quorum_server/export_import
          total 28
          -rw-r--r--. 1 quorumsvr quorumsvr 1927 Jun  3 09:03 cps_ca.crt
          -rw-r--r--. 1 quorumsvr quorumsvr 1476 Jun  3 09:03 qs_certreq_2.crt
          -r--------. 1 quorumsvr quorumsvr  976 Jun  3 09:00 qs_certreq_2.csr
          -rw-r--r--. 1 quorumsvr quorumsvr 1476 Jun  3 09:03 qs_certreq_1.crt
          -r--------. 1 quorumsvr quorumsvr  976 Jun  3 09:00 qs_certreq_1.csr
          -rw-r--r--. 1 quorumsvr quorumsvr 1476 Jun  3 09:03 qs_certreq.crt
          -r--------. 1 quorumsvr quorumsvr  976 Jun  3 08:55 qs_certreq.csr 
    • 使用存储集群的内置CA签发证书(以本端存储集群为例):
      1. 登录本端存储集群的DevicManager界面,在“设置 > 证书 > 内置CA”页面,使用名称为“External”的从属CA签发仲裁服务器、本端存储集群和远端存储集群的证书。具体操作参见内置CA签发数字证书
      2. 导出签发后的仲裁服务器、本端存储集群、远端存储集群的数字证书。具体操作参见导出已签发的数字证书
      3. 导出本端存储集群中“External”从属CA的CA证书。具体操作参见导出内置CA证书

  5. 在仲裁服务器上导入签发后的仲裁服务器的证书和CA证书。

    1. 将仲裁服务器的证书拷贝到仲裁服务器。

      证书生成后,在仲裁服务器的命令行模式下,将生成的仲裁服务器证书(以qs_cert.crt为例)、CA证书(以cps_ca.crt为例)拷贝到仲裁服务器的“/opt/quorum_server/export_import”目录。

    2. 将仲裁服务器的证书导入到仲裁软件。

      在仲裁软件的CLI页面下,执行import tls_cert cert_name=hm_third_cert ca=cps_ca.crt cert=qs_cert.crt [private_key=privateKeyFileName] class=hm命令将证书导入到仲裁软件。

      admin:/>import tls_cert cert_name=hm_third_cert ca=cps_ca.crt cert=qs_cert.crt class=hm
      Command executed successfully.

      导入双活证书时,必须指定cert_name为hm_third_cert,class为hm。

  6. 登录本端存储集群的DeviceManager,选择“双活仲裁的安全证书”场景,导入签发后的本端存储集群的证书和CA证书。具体操作参见导入并激活证书
  7. 登录远端存储集群的DeviceManager,选择“双活仲裁的安全证书”场景,导入签发后的远端存储集群的证书和CA证书。具体操作参见导入并激活证书
  8. 更换证书后需要重新配置仲裁白名单,具体操作请参见对应版本产品文档的“配置仲裁白名单”章节。