PowerStore:如何将自签名群集管理证书替换为外部证书颁发机构颁发的证书

摘要: 本文提供有关如何使用外部证书颁发机构 (CA) 颁发的证书替换 PowerStore 用于管理的自签名证书的分步说明。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

提醒:一般而言,PowerStore 不支持第三方 CA 签署 GUI 证书。浏览器论坛禁止 CA 使用证书中的受限 IP 为证书签名,因为专用 IP 包含在受限列表中,并且 PowerStore 要求在证书中,CA 将拒绝该请求。获取第三方 CA 签名的证书的唯一可能性是将 ISP 或 IANA 提供的公共 IP 用于管理网络。

本文指的是由私有企业 CA 签名的证书(例如,使用 OpenSSL、Microsoft CA 或类似内容) 

本文介绍 PowerStoreOS 2.1。有关 PowerStore OS 的较新版本,请参阅 PowerStore:创建和导入签名的 HTTPS 管理证书

在 PowerStoreOS 版本 2.1 中,对将 PowerStore 管理自签名证书替换为外部 CA 颁发的证书的初始支持以有限形式提供。
除了使用 HTTPS 保护用户界面 (UI) 访问之外,群集管理证书还有其他用途,例如各种内部通信等。

在首次引入 PowerStoreOS 2.1 版随附的功能期间,以下限制适用。

这些限制和局限性适用于 PowerStoreOS 版本 2.1.x,用于私有 CA 签名的服务器证书导入。这些限制和局限性不适用于 PowerStoreOS 版本 3.0 或更高版本。

  • 以下项不支持第三方证书导入
    • 多设备群集
    • 与另一个群集处于复制关系的群集
    • 配置了 SDNAS 的群集
    • 统一系统(文件 + 数据块)
  • 为群集导入第三方证书后,不支持恢复到原始 PowerStore CA 签名证书。
  • 不会为证书过期生成警报。
  • 要导入的证书的有效期应至少为 30 天或更长。
  • 不支持使用 PowerStore Manager UI 导入第三方证书。
  • 仅管理流量 (Management_HTTP) 支持第三方证书导入,而不支持任何其他服务(如 VASA、复制等)。

重要提示:如果运行 PowerStoreOS 2.1,请全面查看并了解这些限制。如果您的系统属于上面列出的类别之一,请不要继续。 

如何使用 PowerStore Manager 用户界面导入外部证书颁发机构颁发的证书

只有运行 PowerStoreOS 版本 2.1 的系统才需要手动 CLI 过程。
对于运行 PowerStoreOS v3 及更高版本的系统,请使用 PowerStore Manager 用户界面导入证书。
有关更多详细信息,请参阅《PowerStore 安全配置指南》。

PowerStore Manager Web UI 签名的群集证书窗口:
PowerStore Manager Web UI 签名的群集证书窗口


如何使用 CLI 导入外部证书颁发机构颁发的证书

步骤 1 — 检索群集 IPv4/IPv6 地址

第一步是检索群集 IPv4/IPv6(管理)地址。此 IP 嵌入在当前自签名管理证书中。这也是您在浏览器中键入以连接到 PowerStore Manager 用户界面的相同 IP 地址。

步骤 1a

检索所有证书的列表。

$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate show

 #  |                  id                  |  type  |     service      | is_current | is_valid
----+--------------------------------------+--------+------------------+------------+----------
  1 | 00907634-b4eb-446a-a381-aae685bae066 | Server | Management_HTTP  | yes        | yes
  2 | 9d0ec275-3688-4ae2-922b-639e1cfb0b88 | Server | VASA_HTTP        | yes        | yes
  3 | c5f03cf7-fe1d-40bd-b6fb-7abba0c6026a | Client | Replication_HTTP | yes        | yes
      <trimmed for brevity>

记下具有服务Management_HTTP类型服务器的证书的 id字段。

步骤 1b

获取当前自签名管理证书的完整详细信息。
运行以下命令,将 id替换为您在步骤 1a 中检索到的值。

 
$  pstcli -u admin -p <password> -d <cluster_ip> x509_certificate -id 00907634-b4eb-446a-a381-aae685bae066 show

id           = 00907634-b4eb-446a-a381-aae685bae066
type         = Server
type_l10n    = Server
service      = Management_HTTP
service_l10n = Management_HTTP
is_current   = yes
is_valid     = yes
members:
  subject                   = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
  serial_number             = 14daac34e1db4711
  signature_algorithm       = SHA384withRSA
  issuer                    = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
  valid_from                = 11/16/21 23:16:33
  valid_to                  = 10/30/89 23:16:33
  public_key_algorithm      = RSA
  key_length                = 4096
  thumbprint_algorithm      = SHA-256
  thumbprint_algorithm_l10n = SHA-256
  thumbprint                = 279ea39ad7b8d2e0f3695a850a7d302e8318e080e1092fccb314c8f4f19e50a4
  certificate               = MIIFdDCCA1ygAwIBAgIIFNqsNOHbRxEwDQYJKoZIhvcNAQEMBQAwVzELMAkGA1UEBhMCVVMxCzAJBg
                              <trimmed for brevity>
                              Ar4eTY0aBe7R8fnSbg97EFqF+1gGhKlxrOU9AICgZJDh0PDQJRcYLFJBi36Ktt++mtRgpSig8VvypZ
  depth                     = 2
  subject_alternative_names =

  subject                   = C=US+O=Dell+L=Hopkinton+OU=PowerStore+ST=Massachusetts+CN=ManagementHTTP.xxxxxxxxxxxx
  serial_number             = xxxxxxxxxxxxx
  signature_algorithm       = SHA256withRSA
  issuer                    = CN=Dell EMC PowerStore CA E79NFK8T,O=Dell EMC,ST=MA,C=US
  valid_from                = 11/16/21 23:56:23
  valid_to                  = 11/15/26 23:56:23
  public_key_algorithm      = RSA
  key_length                = 4096
  thumbprint_algorithm      = SHA-256
  thumbprint_algorithm_l10n = SHA-256
  thumbprint                = eedf2f9c1d0f70f018857110e87cd122f4fa31140e694c30b5ea10398629dbf1
  certificate               = MIIFejCCA2KgAwIBAgIJANlUDR+8+78qMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNVBAYTAlVTMQswCQ
                              <trimmed for brevity>
                              ZTShTW0BFh3IeAgt23Tlhz+npsJNqbvxXB+8hXqvNWcpzeSluiUalqB3qU9MwCzwHpEkXqagzk8EZM
  depth                     = 1
  subject_alternative_names = aaa.bbb.ccc.ddd, 1111:2222:3333:4444:5555:6666:7777:8888
您将在输出中获得两个证书:PowerStore 内部 CA 和由该内部 CA 签名的管理证书。
管理证书具有 “深度 = 1”字段, subject_alternative_names字段填充了 IPv4 和 IPv6 IP 地址。
如果您使用 IPv4 管理群集,则 应在“subject_alternative_names ”字段中看到第一个 IPv4 群集管理 IP(如上面的示例 - aaa.bbb.ccc.ddd 所示)。如果您使用 IPv6 管理群集,请记下 第一个 IPv6 地址。
提醒:subject_alternative_names字段中的第二个 IPv6 地址是群集内管理 (ICM) 地址,在下一步中生成 CSR 时会自动填充。没有必要把它写下来。

步骤 2 — 生成证书签名请求 (CSR)

如何生成 CSR,稍后将其提交给证书颁发机构进行签名。

步骤 2a

运行以下命令以生成有关生成 CSR 的帮助并熟悉其语法:


  
$ pstcli -u admin -p <password> -d <cluster_ip> help x509_certificate csr

x509_certificate csr -type { Server | Client | CA_Client_Validation | CA_Server_Validation } -service { Management_HTTP | Replication_HTTP | VASA_HTTP | Import_HTTP | LDAP_HTTP | Encrypt_HTTP | Syslog_HTTP } -dns_name <value>,...
-ip_addresses <value>,... -key_length <2048..4096> [ -scope <value> ] [ -common_name <value> ] [ -organizational_unit <value> ] [ -organization <value> ] [ -locality <value> ] [ -state <value> ] [ -country <value> ] [ { -passphrase
<value> | -passphraseSecure } ] [ -async ]
<trimmed for brevity>
 

以上粗体选项是必需的,所有其他选项都是可选的。如果您的公司证书政策要求使用这些可选字段,请咨询您的 CA 或 PKI 管理员。

提醒:将 FQDN(如 powerstore.mycompany.com)放入 -common_name 或 CN 字段是一种广泛接受的做法。

步骤 2b

使用上述准则生成 CSR。

 
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate csr -type Server -service Management_HTTP -dns_name "powerstoreXY.mycompany.com" -ip_addresses aaa.bbb.ccc.ddd -key_length 2048 -scope "External" -common_name "powerstoreXY.mycompany.com"
 


该命令的输出将返回 BASE64 编码的 id 和 CSR。例如:


  
  1 | 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd | Server | Management_HTTP | Management_HTTP | no         | no       | -----BEGIN CERTIFICATE REQUEST-----
MIIDJTCCAg0CAQAwezF5MAkGA1UEBhMCVVMwCwYDVQQKEwREZWxsMBAGA1UEBxMJ
<trimmed for brevity>
h4t6QVXny+nF25XASq49kuZ8aWA0aTwU8VN5lC0qbSA2Zy6uX8jPmf/ecGNSQzIc
6iDIm76HbL7UKlDecSmr7WiR5hZ9bP/zKxmkNlTN1viqtInGl+zZa6U= -----END CERTIFICATE REQUEST-----


复制您在输出中收到的 ID(上面加粗),因为后续步骤需要用到它。

您还必须设置 CSR 的格式(使用 VIM 或任何文本编辑器,如记事本)。第一行必须是 -----BEGIN CERTIFICATE REQUEST-----,最后一行必须以 -----END CERTIFICATE REQUEST-----结尾。任何地方都不得有前导空格或结束空格。

格式化 CSR 的示例:

-----BEGIN CERTIFICATE REQUEST-----
MIIDJTCCAg0CAQAwezF5MAkGA1UEBhMCVVMwCwYDVQQKEwREZWxsMBAGA1UEBxMJ
SG9wa2ludG9uMBEGA1UECxMKUG93ZXJTdG9yZTAUBgNVBAgTDU1hc3NhY2h1c2V0
<trimmed for brevity>
h4t6QVXny+nF25XASq49kuZ8aWA0aTwU8VN5lC0qbSA2Zy6uX8jPmf/ecGNSQzIc
6iDIm76HbL7UKlDecSmr7WiR5hZ9bP/zKxmkNlTN1viqtInGl+zZa6U=
-----END CERTIFICATE REQUEST-----
 
将您的 CSR 保存在具有易于理解的名称的文件中。例如: powerstoreXY.csr

步骤 2c(可选)

如果您确信 CSR 的格式正确,则可以跳过此步骤。

如果要验证其有效性,可以使用 OpenSSL 工具套件来确认它可以读取,以及 CSR 字段中的数据看起来正确。例如,使用步骤 2b 中提供的值,CSR 中的粗体字段应反映:


  
$ openssl req -in powerstoreXY.csr -noout -text

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=US, O=Dell, L=Hopkinton, OU=PowerStore, ST=Massachusetts, CN=powerstoreXY.mycompany.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:af:cd:73:7a:d7:71:03:67:d6:f9:46:9f:aa:68:
                    <trimmed for brevity>
                    90:c4:68:44:71:bd:d7:64:65:81:36:90:2e:c2:15:
                    b8:f5
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Subject Alternative Name:
                DNS:powerstoreXY.mycompany.com, IP Address:aaa.bbb.ccc.ddd, IP Address:1111:2222:3333:4444:5555:6666:7777:8888
    Signature Algorithm: sha256WithRSAEncryption
         15:f6:08:8e:ab:f6:07:91:82:ed:45:f0:d9:4d:8c:f5:c6:e3:
         <trimmed for brevity
         16:7d:6c:ff:f3:2b:19:a4:36:54:cd:d6:f8:aa:b4:89:c6:97:
         ec:d9:6b:a5



如果一切看起来都正确,请转至下一步。

步骤 3 - 将 CSR 提交给私有 CA 进行签名

此步骤因供应商而异。此处的目标是使用供应商建议的过程将您的 CSR 提交给证书颁发机构,以接收编码为 BASE64 的签名证书。

步骤 3a

验证新颁发的证书是否为 BASE64 编码。确保文件以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾,中间包含编码的数据。

 
$ cat powerstoreXY.cer
-----BEGIN CERTIFICATE-----
MIIGFjCCA/6gAwIBAgITdAAAAA4SiEpOgIXLggABAAAADjANBgkqhkiG9w0BAQsF
<trimmed for brevity>
7NcBrSr0Ach8rC443vrqLSChaTZFt1TtYiSJJT+ZEL2F0/TG9BTXBbHKFTVFXgf9
l9dWpDkH6mq/fhgaMNT/vuMCUtD40fj81DE=
-----END CERTIFICATE-----
步骤 3b

确认您收到的证书包含生成 CSR 时请求的属性值,特别是 DNS 和 Subject Alternative Name 中的 IP 地址。根据证书颁发机构生成和签署证书所涉及的步骤,证书不一定包含这些值。


  
$ openssl x509 -in powerstoreXY.cer -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            74:00:00:00:0e:12:88:4a:4e:80:85:cb:82:00:01:00:00:00:0e
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: DC=com, DC=mycompany, CN=Issuing CA
        Validity
            Not Before: Nov 26 16:51:16 2021 GMT
            Not After : Nov 26 16:51:16 2023 GMT
        Subject: C=US, ST=Massachusetts, L=Hopkinton, O=Dell, OU=PowerStore, CN=powerstoreXY.mycompany.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:af:cd:73:7a:d7:71:03:67:d6:f9:46:9f:aa:68:
                    <trimmed for brevity>
                    90:c4:68:44:71:bd:d7:64:65:81:36:90:2e:c2:15:
                    b8:f5
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                DNS:powerstoreXY.mycompany.com, IP Address:aaa.bbb.ccc.ddd, IP Address:1111:2222:3333:4444:5555:6666:7777:8888
            X509v3 Subject Key Identifier:
                1C:19:5D:DF:B4:F0:9F:B7:7B:2B:4A:0E:09:B3:C6:43:3E:CF:4D:4C
            X509v3 Authority Key Identifier:
                keyid:25:D0:D5:01:27:75:BD:08:FF:E7:FF:02:6C:CE:17:46:86:50:DD:71

            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://pki.mycompany.com/pki/Issuing%20CA.crl

            Authority Information Access:
                CA Issuers - URI:http://pki.mycompany.com/pki/ca-iss.mycompany.com_Issuing%20CA.crt

            1.3.6.1.4.1.311.20.2:
                ...W.e.b.S.e.r.v.e.r
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
    Signature Algorithm: sha256WithRSAEncryption
         99:d9:99:a7:7a:b9:4a:e8:e3:66:ed:56:1f:6f:bc:71:b8:07:
         <trimmed for brevity>
         97:d7:56:a4:39:07:ea:6a:bf:7e:18:1a:30:d4:ff:be:e3:02:
         52:d0:f8:d1:f8:fc:d4:31

  

如果您在证书的 X509v3 主题备用名称(上面的粗体)中未看到您在 CSR 中请求的 DNS 和 IP 属性,请咨询您的 CA 管理员以解决此问题。
在确认证书中存在所需属性之前,请勿继续作。

步骤 3c

此步骤涉及在单个 BASE64 编码文件中构建完整的证书链,必须包含您的 PowerStore 证书以及层次结构中参与证书签名的每个 CA 的证书。

使用由以下实体组成的假设公钥基础设施 (PKI):

根 CA > 颁发 CA > 分支

其中

  • 根 CA — 是层次结构的顶部,它只为颁发 CA 签名和颁发证书。它通常从不参与为端点签署证书。
  • 颁发 CA — 这是通常会向各种端点颁发证书的方法。
  • — 端点,例如工作站、服务器等。您的 PowerStore 系统就属于此类别。
提醒:合并后,它应与上面列出的顺序相反。从顶部的叶开始,然后是颁发 CA,最后是根 CA。请阅读下文,了解有关合并证书信息的更多信息。


根据 PowerStore 证书的颁发方式,您收到的文件可能仅包含 PowerStore 端点(叶)的单个证书,也可能包含整个链(叶 + 颁发 CA + 根 CA)。在后续步骤中,您不能将仅包含单个叶证书的文件导入 PowerStore。您必须将完整的链(叶 + 颁发 CA + 根 CA)创建为单个 BASE64 编码的 PEM 文件,其中包含所有三个(或更多,如果链中有多个 CA)证书。

如果您还没有,则必须获取颁发 CA 和根 CA 的 BASE64 编码证书,并将它们与 PowerStore 的叶证书合并到一个 PEM 文件中:


  
$ cat powerstoreXY.cer issuingca.cer rootca.cer > combined.pem
使用文本编辑器打开 combined.pem 文件,并删除任何结束或前导空格和空行。此外,证书的正文(BEGIN/END CERTIFICATE标记之间的数据)必须是单行字符串。
生成的 combined.pem 文件应类似于以下示例:

  
$ cat combined.pem
-----BEGIN CERTIFICATE-----
MIIGFjCCA/6gAwIBAgITdAAAAkiG9w0BAQs<trimmed for brevity><PowerStore leaf cert>7NcBrSr0Ach8rC443vrqLSChaTZF0fj81DE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGXjCCBEagAwIBDANBgkqhkiG9w0BAQ0F<trimmed for brevity><Issuing CA cert>HU+TePFvwmGruno8fGI4iLyh5kWjnWW2SZVI4wWQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCzCCAvOgAwIyoqhkiG9w0BAQ0FAuDAX<trimmed for brevity><Root CA cert>wRh/EXhVd32yvTxupm288LcH3UU3iGHx0tHieAGEkT0=
-----END CERTIFICATE-----
 

步骤 4 — 导入签名证书链

在最后一步中,通过导入包含新签名证书和所有 CA 的完整链来替换 PowerStore 自签名证书。您需要在步骤 2b 中生成的证书 ID

如果未记下它,请运行以下命令以再次获取该 ID:


  
$ pstcli -u admin -p <password> -d <cluster_ip> x509_certificate show
 #  |                  id                  |  type  |     service      | is_current | is_valid
----+--------------------------------------+--------+------------------+------------+----------
  1 | 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd | Server | Management_HTTP  | no         | no
  2 | 00907634-b4eb-446a-a381-aae685bae066 | Server | Management_HTTP  | yes        | yes
  3 | c5f03cf7-fe1d-40bd-b6fb-7abba0c6026a | Client | Replication_HTTP | yes        | yes
  4 | 9d0ec275-3688-4ae2-922b-639e1cfb0b88 | Server | VASA_HTTP        | yes        | yes


  


请注意服务 证书Management_HTTP无效且不是最新的。在上面的示例中,id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd 是您需要的那个。

运行以下命令以导入链:


  
$ pstcli -u admin -p <password> -d <cluster_id> x509_certificate -id <cert_id> set -is_current true -certificate '<contents_of_the_combined.pem_file>'

  
提醒:必填换行符必须为“\n”。


例如:


  
pstcli -u admin -d self x509_certificate -id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd set -is_current true -certificate $'-----BEGIN CERTIFICATE-----\n[...Single line PowerStore certificate content...]\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n[...Single line CA Certificate certificate content...] \n-----END CERTIFICATE-----'
或者,在将 Linux 工作站与 PSTCLI 配合使用(例如 PowerStore 上的 SSH)时,您可以告诉 BASH 解释器完全按原样使用 $' ' 之间的任何内容,包括格式。在这种情况下,不需要附加“新行 \n”:

  
pstcli -u admin -d self x509_certificate -id 81ea4b51-4b80-4a88-87f1-f0a0ddd1c1fd set -is_current true -certificate $'-----BEGIN CERTIFICATE-----
MIIGFjCCA/6gAwIBAgITdAAAAA4SiEpOgIXLggABAAAADjANBgkqhkiG9w0BAQsF<trimmed for brevity><PowerStore leaf cert>7NcBrSr0Ach8rC443vrqLSChaTZFt1TtYiSJJT+ZEL2F0/TG9BTXBbHKFTVFXgf9l9dWpDkH6mq/fhgaMNT/vuMCUtD40fj81DE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGXjCCBEagAwIBAgITQgAAAARkLTTf7tqFAQAAAAAABDANBgkqhkiG9w0BAQ0F<trimmed for brevity><Issuing CA cert>HU+TePFvwmGruno8o65kK+qWvvYG10PbMbIYxxm/zyofGI4iLyh5kWjnWW2SZVI4wWQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCzCCAvOgAwIBAgIQad6TNg7Pqa5HsuYzLFAK5jANBgkqhkiG9w0BAQ0FADAX<trimmed for brevity><Root CA cert>wRh/EXhVd32yvTxOdBGBBENLQnD6U6HkA4FO/jVbXR2B793giBmi9w85+B7obgWPSTypIgA+LKG3nE0jf5AW5LnOV+gQDCOsSJlGpm288LcH3UU3iGHx0tHieAGEkT0=
-----END CERTIFICATE-----'


此时,新证书应已安装并正常运行。您必须关闭并重新启动浏览器才能看到新证书。使用 PSTCLI 重新连接还会显示证书指纹已更改的警告,这表明新证书已成功安装。


受影响的产品

PowerStore
文章属性
文章编号: 000193886
文章类型: How To
上次修改时间: 31 10月 2025
版本:  11
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。