SSMC 证书和 X.509 双因素身份验证

SSMC 中可使用两个客户端证书和两个服务器证书。这些证书通常由同一组 CA 根证书和中间证书签名。SSMC X.509 双因素身份验证解决方案使用其中的一些证书以进行身份验证。
重要信息:

要启用双因素身份验证,Hewlett Packard Enterprise 建议您在 SSMC 上禁用 FIPS(如果已启用)。您可以在配置双因素身份验证后重新启用 FIPS 模式。或者,确保按照修改 FIPS 的密钥存储条目中所述进行相应的修改。

  • 证书 A - 在 SSMC 中标识浏览器(用户)的客户端证书。

    该证书标识将登录到 SSMC 的用户。具体细节因证书使用模式(智能卡、虚拟智能卡、软件令牌)而异。如果使用 CAC(通用访问卡),则该证书位于物理智能卡上。如果使用虚拟智能卡,该证书的私钥存储在客户端计算机上的物理 TPM(受信任的平台模块)芯片中。如果使用软件标记,该证书将完全位于操作系统或浏览器中。

    为用户证书安装信任证书

    • 使用 Java keytool 在位于 /opt/hpe/ssmc/ssmcbase/etc/truststore 的 SSMC Web 服务器信任存储中为用户身份(客户端)证书安装信任证书。

      例如:
      • 将要信任的公共证书(用户证书的信任锚;这通常是链的 CA 根证书或要信任的中间证书之一)以 PEM 格式保存为 ~/user_trust.pem

      • cd /opt/hpe/ssmc/ssmcbase/etc

      • /opt/hpe/ssmc/jre/bin/keytool -keystore truststore -import -trustcacerts -alias <any_alias> -file ~/user_trust.pem

    • 默认信任存储密码为 BuyMore3PAR!。更改此密码需要对 /opt/hpe/ssmc/ssmcbase/etc/jetty-ssl-context.xml 进行配置更改。

    • 按照在配置文件中使用混淆的密码一节中提到的过程,为新密码生成混淆的字符串。

    • /opt/hpe/ssmc/ssmcbase/etc/jettyssl-context.xml 中的 TrustStorePassword 属性的现有混淆信任存储密码字符串替换为新生成的密码字符串。

    对于运行固件 4.3 或更高版本的 Primera 阵列,请确保该阵列也信任用户证书。SSMC 在其级别执行用户证书身份验证,并将证书传送到阵列以进行最终身份验证。对于所有较低版本的固件和 3PAR 阵列,以下过程不适用,您可以跳到证书 B 的相应章节。

    在 Primera UI 上导入用户(客户端)证书的信任证书

    如果双因素身份验证也适用于 Primera UI,则执行以下步骤。否则,请跳过本节并执行在阵列上导入用户(客户端)证书的信任证书。有关为 Primera UI 配置双因素身份验证的详细信息,请参阅《HPE Primera UI 用户指南》。
    1. Super 用户身份登录到 Primera UI。

    2. 导航到设置并选择受信任的证书

    3. 单击右上角的创建图标 (+) 以添加新的受信任证书。

    4. 选择其它,并粘贴要信任的颁发者证书的 PEM 文本。

      这可能是一个或多个中间证书和/或 CA 根证书。

    5. 单击添加以保存。

    在阵列上导入用户(客户端)证书的信任证书
    1. 使用 SSH 客户端登录到阵列 CLI。

    2. 使用以下命令为 CAC 用户证书身份验证导入信任根:

      importcert cac -ca stdin
    3. 将 CAC 根用户证书以 PEM 文本格式粘贴到屏幕上。

    4. 按两次 Enter 以继续并完成用户信任证书导入。

  • 证书 B - 在浏览器中标识 SSMC 的服务器证书(对于双因素身份验证并非绝对必要)。

    安装 SSMC 后,该证书会自动以自签名服务器证书的方式创建。该证书可替换为 CA 签名证书。

    该证书位于在 /opt/hpe/ssmc/ssmcbase/etc/keystore 的 Java 密钥存储中。您可以使用 Java keytool 管理证书 B。有关在 SSMC 中生成和安装该证书的详细信息,请参阅为 SSMC 安装 CA 签名的证书

  • 证书 C - 在存储阵列中标识 SSMC 的客户端(或合作伙伴)证书。

    默认情况下,该证书不存在。根据您的 IT 策略生成证书。

    将以下示例作为准则,以便在 SSMC 中生成并安装证书 C
    • 执行初始设置。
      export PATH=/opt/hpe/ssmc/ssmcbase/fips/jre/bin:$PATH
      cd /opt/hpe/ssmc/ssmcbase/data/StoreServMC/security/
    • 备份任何现有的 TPDServerKeyStore 文件。
      mv TPDServerKeyStore ~/TPDServerKeyStore.old
    • 为 SSMC 身份证书生成新的自签名密钥对。
      keytool -genkeypair -keystore TPDServerKeyStore -storetype jks -storepass HPESecureStorage -keypass HPESecureStorage! -validity 365 -alias ssmc_id -keysize 2048 -keyalg RSA -storetype JKS -dname "cn=ssmc, ou=My Org Unit, o=My Org, st=NY, l=NYC, c=US" -ext KeyUsage=keyEncipherment,digitalSignature -ext ExtendedKeyUsage=clientAuth,1.3.6.1.4.1.12925.2.1.1
    • 生成 CSR。
      keytool -certreq  -keystore TPDServerKeyStore -storepass HPESecureStorage -keypass HPESecureStorage! -alias ssmc_id -ext KeyUsage=keyEncipherment,digitalSignature -ext ExtendedKeyUsage=clientAuth,1.3.6.1.4.1.12925.2.1.1 -file ~/ssmc_id_csr.txt
      重要信息: 如果 SSMC 管理的任何阵列是运行 OS 4.3 或更高版本的 Primera,则必须按原样保留最终 CA 签名证书中的以下证书扩展。
      -ext KeyUsage=keyEncipherment,digitalSignature 
      -ext ExtendedKeyUsage=clientAuth,1.3.6.1.4.1.12925.2.1.1
    • 根据您的 IT 策略由 CA 对 CSR (ssmc_id_csr.txt) 进行签名。将签名的证书以 PEM 编码形式存储为 ~/ssmc_id_signed.cer。此外,将中间 CA 颁发者证书存储为 ~/ssmc_intca.cer,并将根 CA 证书存储为 ~/ssmc_rootca.cer

    • 现在,导入提供的根 CA 证书并将别名指定为 root
      keytool -import -alias root -keystore TPDServerKeyStore -storepass 
      HPESecureStorage -file ~/ssmc_rootca.cer 
      Enter keystore password:
      .
      .
      .
      Trust this certificate? [no]: yes
      Certificate was added to keystore
      接下来,导入 CA 提供的任何中间 CA 证书:
      keytool -import -keystore TPDServerKeyStore -storepass HPESecureStorage 
      -file ~/ssmc_intca.cer

      重复该步骤,直到将证书链中的所有中间证书添加到密钥存储中。

    • 最后,将 ssmc_id 作为别名以将 CA 签名的 SSMC 身份证书添加到密钥存储中:
      keytool -import -keystore TPDServerKeyStore -alias ssmc_id -storepass 
      HPESecureStorage -keypass HPESecureStorage! -file ~/ssmc_id_signed.cer
    • 将文件权限和所有权调整为 TPDServerKeyStore,如下所示:
      chmod 640 ./TPDServerKeyStore
      chown ssmcadmin:hpe3parssmcuser ./TPDServerKeyStore
      重要信息: 您必须编辑 ssmc.properties 文件,并设置您在设置 TPDServerKeyStore 时使用的别名、密钥存储密码和密钥密码(如果不同于密钥存储密码)的值。
    • 您可以按照在配置文件中使用混淆的密码一节中提到的过程添加明文密码,或者为使用的新密码生成混淆的字符串。

      例如:

      ssmc.properties 中设置以下键值对(明文):
      tpd.server.key.alias = ssmc_id
      tpd.server.keystore.password = HPESecureStorage
      tpd.server.keymanager.password = HPESecureStorage!
      或者,在 ssmc.properties 中设置以下键值对(混淆):
      tpd.server.key.alias = ssmc_id
      tpd.server.keystore.password = OBF:1nc21pbc1lyb1s2o1v1x1vn21spt1vnw1vn61snx1vo
      01v2h1s4e1lzv1pcm1ndo
      tpd.server.keymanager.password = OBF:19ye1ox61n4t1oq91vn61unn1z7k1s4e1t331s2o1
      z7i1uob1vnw1or11n6p1oyc19w8
    对于运行固件 4.3 或更高版本的 Primera 阵列,必须在 Primera UI 和阵列中信任合作伙伴(SSMC 证书 C)。对于所有较低版本的固件和 3PAR 阵列,以下过程不适用,您可以跳到证书 D 的相应章节。
    1. Super 用户身份登录到 Primera UI。

    2. 导航到设置并选择受信任的证书

    3. 单击右上角的创建图标 (+) 以添加新的受信任证书。

    4. 选择合作伙伴证书并粘贴 SSMC 合作伙伴证书(证书 C)的 PEM 文本以及来自中间颁发者的任何文本,然后将 CA 根证书作为合并的 PEM 文本进行粘贴。

    5. 单击添加以保存。

    6. 转到阵列 CLI,执行 stopwsapi 命令,然后执行 startwsapi 以重新启动 WSAPI 服务。

  • 证书 D - 在 SSMC 中标识 3PAR/Primera 存储阵列的服务器证书。

    3PAR/Primera 存储阵列自动将该证书作为自签名服务器证书进行创建。您可以生成并导出证书签名请求,由 CA 对其进行签名,然后导入签名的阵列证书以安装您自己的 CA 签名证书。

    例如:
    • 在阵列 CLI 上执行以下命令以创建证书签名请求:

      createcert unified-server -csr
    • 复制 csr 文本,并根据您的 IT 策略从 CA 中对其进行签名。签名的证书以及信任链应采用 PEM 格式。例如,cert.pem 是签名的阵列证书,int_ca.pem 是中间 CA 证书,而 root_ca.pem 是 CA 根证书。
      重要信息: 在 SSMC 连接到阵列时,SSMC 执行双向 TLS 握手 (mTLS)。在该过程中,阵列从 SSMC 请求一个客户端证书,该证书由对阵列证书签名的同一颁发者进行签名,该证书将导入到阵列证书存储中,如上所示。因此,要求 SSMC 合作伙伴证书(证书 C)和阵列证书(证书 D)必须由同一颁发者 CA 进行签名。
    • 将 CA 根证书和所有中间 CA 证书(我们在该示例中仅使用一个中间证书)以 PEM 文本形式合并为一个文件。
      cat int_ca.pem root_ca.pem > ca_bundle.pem
    • 在阵列 CLI 上执行以下命令以导入 CA 签名的证书以及信任 CA 包。
      importcert unified-server stdin stdin

      先粘贴 cert.pem 文件内容,然后按两次 Enter。接下来,粘贴 CA 包文件内容,然后按两次 Enter

      有关阵列上的证书管理命令的详细信息,请参阅《3PAR/Primera 阵列命令行界面 (CLI) 指南》。

    • 证书 D 的信任链(CA 根 + 中间 CA)以 PEM 文本形式导出到一个文件中。将该文件复制到 SSMC 设备上的 /opt/hpe/ssmc/ssmcbase/data/StoreServMC/security 路径中。这样,SSMC 就可以在 TLS 连接期间找到存储阵列的信任证书,从而提供它新安装的阵列证书 (cert.pem)。
      • 导航到 Administrator Console,阵列将保持需要接受证书状态。

      • 操作菜单中选择接受证书。查看、接受和缓存通过网络提供的新阵列证书以建立连接。

      注意: 如果选择了SSMC 处于 FIPS 模式,您必须手动导入阵列证书 (cert.pem)。