为 SCMB 创建 CA 签署的客户端证书

以下过程介绍如何生成可用于连接到状态更改消息总线 (SCMB) 的 CA 签署的客户端证书。

前提条件
  • 装有 OpenSSL 的环境或同等环境。

  • 可以访问商业或自定义证书颁发机构 (CA) 以处理签名请求。

过程
  1. 为客户端证书创建新的密钥对。
    此命令生成一个文件名为 cert.key、采用 3072 位加密的新私钥:
    openssl genrsa -out cert.key 3072

    2048 位加密也可生成密钥对,但所得的客户端证书在 HPE OneView 处于 CNSA 模式下时将无法正常工作。

  2. 使用这个新的密钥对,为客户端证书创建证书签名请求 (CSR)。
    该命令使用数据输入通过交互式提示创建一个 CSR:
    openssl req -new -key cert.key -out cert.csr

    必须将该命令的公用名设置为 rabbitmq_readonly,因为 SCMB 服务器配置为接受来自该用户的连接。对于其他提示,请输入适合您所在的组织的内容。

  3. 使用对应于您与 CA 的关系的签名方法创建将用于连接到 SCMB 服务器的客户端证书。
    1. 如果由商业实体或其他组织提供 CA,请按照 CA 提供的说明签署客户端证书。
    2. 如果可直接访问 CA 根证书和密钥,请创建一个配置文件 (openssl.cnf),其中包括客户端证书正常工作所需的各个选项。
      例如:
      [ client ]
      basicConstraints = CA:FALSE
      keyUsage = digitalSignature, keyEncipherment, dataEncipherment
      extendedKeyUsage = clientAuth, msSmartcardLogin
      nsCertType = client
      subjectAltName = @alt_names
      
      [ alt_names ]
      email = .

      指定客户端证书需要 basicConstraintsextendedKeyUsage:clientAuthnsCertType 所有这三个字段。OpenSSL 专家可根据组织要求和对效果的理解而应用其他设置。有关详细信息,请参阅 OpenSSL 文档。

    3. 使用所得的配置文件签署 CSR 并生成客户端证书。
      例如:
      openssl x509 -req -CA ca.pem -CAkey ca.key -in 
      cert.csr -out cert.pem -days 365 -set_serial 1 
      -extfile openssl.cnf -extensions client
  4. 确保设备信任 CA 根证书以及用于签署 SCMB 客户端证书的任何中间 CA。设备上的 SCMB 服务器只有在信任签署客户端证书的 CA 时才会接受该证书。如果尚未建立这种信任关系,请现在建立信任关系。
    注意:

    应将签署客户端的中间 CA 证书添加到客户端程序而非设备。

    1. 转到安全设置 > 管理证书颁发机构证书,然后将 CA 添加到设备中。

      到 SCMB 服务器的任何活动连接将会中断,因此,需要重新建立这些连接。

  5. 使用所选的客户端程序,连接到设备上的 SCMB 服务器。成功地连接需要在步骤 1 中创建的密钥对、在步骤 3 中创建的客户端证书和一个 CA 证书文件(它包含签署 SCMB 服务器证书的 CA 的根证书以及用于签署客户端证书的任何中间 CA 证书)。
  6. 如果仍无法连接到 SCMB 服务器,请按照这些故障排除步骤进行操作