「PowerStore:自己署名クラスター管理証明書を外部認証局によって発行された証明書に置き換える方法
Summary: この記事では、管理に使用されるPowerStoreの自己署名証明書を、外部認証局(CA)によって発行された証明書に置き換える手順について説明します。
Instructions
注:一般に、PowerStoreは、GUI証明書に署名するサード パーティーCAをサポートしていません。ブラウザー フォーラムでは、CAが証明書の制限付きIPを持つ証明書に署名することを禁止しています。プライベートIPは制限リストに含まれており、PowerStoreによって証明書でも必要とされているため、CAはリクエストを拒否します。サード パーティーCAによって署名された証明書を取得する唯一の方法は、ISPまたはIANAから提供されたパブリックIPを管理ネットワークに使用することです。
この記事では、プライベート エンタープライズ CA によって署名された証明書について説明します (たとえば、OpenSSL、Microsoft CA などを使用)
この記事では、PowerStoreOS 2.1について説明します。PowerStore OSの新しいバージョンについては、「 PowerStore: 署名済み HTTPS 管理証明書の作成とインポート
PowerStoreOSバージョン2.1.
では、PowerStore Managementの自己署名証明書を外部CAが発行した証明書に置き換えるための初期サポートが限定された形で提供されますHTTPSを使用してユーザー インターフェイス(UI)アクセスをセキュリティで保護する以外に、クラスター管理証明書には、さまざまな内部通信などの他の用途があります
PowerStoreOSバージョン2.1.
で提供された機能の初期導入時には、次の制限事項が適用されます。これらの制限事項は、プライベートCA署名済みサーバー証明書のインポートに関するPowerStoreOSバージョン2.1.xに適用されます。これらの制限事項は、PowerStoreOSバージョン3.0以降には適用されません。
- サード パーティー証明書のインポートは、以下ではサポートされていません
- マルチアプライアンス クラスター
- 別のクラスターとレプリケーション関係にあるクラスター
- SDNASが構成されているクラスター
- 統合システム(ファイル + ブロック)
- クラスターのサード パーティー証明書がインポートされると、元のPowerStore CA署名済み証明書への復元はサポートされません。
- 証明書の有効期限に関するアラートは生成されません。
- インポートする証明書は、少なくとも30日間以上有効である必要があります。
- PowerStore Manager UIを使用したサード パーティー証明書のインポートはサポートされていません。
- サード パーティー証明書のインポートは、管理トラフィック(Management_HTTP)でのみサポートされており、他のサービス(VASA、レプリケーションなど)ではサポートされていません。
重要:PowerStoreOS 2.1を実行している場合は、これらの制限事項を十分に確認して理解してください。システムが上記のいずれかのカテゴリーに分類される場合は、続行しないでください。
PowerStore Managerユーザー インターフェイスを使用して外部認証局が発行した証明書をインポートする方法
手動のcli手順は、PowerStoreOSバージョン2.1.
を実行しているシステムにのみ必要ですPowerStoreOS v3以降を実行しているシステムの場合は、PowerStore Managerユーザー インターフェイスを使用して証明書をインポートします。
詳細については、『PowerStoreセキュリティ構成ガイド』を参照してください
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とタイプがServerの証明書の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によって署名された管理証明書の2つの証明書が表示されます。
管理証明書には depth = 1フィールドがあり、 subject_alternative_namesフィールドにはIPv4およびIPv6のIPアドレスが入力されています。
IPv4を使用してクラスターを管理している場合は、subject_alternative_names フィールドの最初のIPとしてIPv4クラスター管理IPが表示されます(上記の例のように、aaa.bbb.ccc.ddd)。IPv6を使用してクラスターを管理している場合は、 最初のIPv6アドレスを書き留めます。
手順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 管理者に相談してください。
ステップ 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が適切にフォーマットされていると確信できる場合は、この手順をスキップできます
CSRの有効性を検証する場合は、OpenSSLツールスイートを使用して、CSRが読み取れること、および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、および IP アドレス) が [Subject Alternative Name] に含まれていることを確認します。認証局による証明書の作成と署名に関連する手順に応じて、証明書にそれらが含まれている場合と含まれていない場合があります。
$ 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 Subject Alternative Name(上記の太字の例)にCSRで要求したDNSおよびIP属性が表示されない場合は、CA管理者に問い合わせて対処してください
必要な属性が証明書に存在することを確認するまで、先に進まないでください。
ステップ 3c
この手順では、完全な証明書チェーンを単一のBASE64エンコード ファイルに構築します。これには、PowerStore証明書と、証明書の署名に関連する階層内のすべてのCAの証明書が含まれている必要があります。
次のエンティティーで構成される仮想公開キー インフラストラクチャ(PKI)を使用する場合:
ルートCA > 発行元CA > リーフ
「WHERE(場所)」
- ルートCA :階層の最上位にあり、発行元CAの証明書にのみ署名および発行します。通常、エンドポイントの証明書の署名には関与しません。
- 発行元CA - これは通常、さまざまなエンドポイントに証明書を発行するものです。
- リーフ - ワークステーション、サーバーなどのエンドポイント。お使いのPowerStoreシステムは、このカテゴリーに分類されます。
PowerStore証明書の発行方法に応じて、返送されたファイルにPowerStoreエンドポイント(リーフ)の証明書が1つだけ含まれている場合もあれば、チェーン全体(リーフ + issuingCA + rootCA)が含まれている場合もあります。次の手順では、1つのリーフ証明書のみを含むファイルをPowerStoreにインポートすることはできません。完全なチェーン(リーフ + issuingCA + rootCA)は、3つ(チェーン内により多くのCAがある場合はそれ以上)の証明書すべてを含む1つのBASE64エンコードPEMファイルとして作成する必要があります
まだお持ちでない場合は、発行元CAとルートCAのBASE64エンコード証明書を取得し、PowerStoreのリーフ証明書と組み合わせて1つのPEMファイルにする必要があります。
$ cat powerstoreXY.cer issuingca.cer rootca.cer > combined.pem
テキスト エディターで combined.pemファイルを開き、末尾または先頭のスペースと空白行を削除します。また、証明書の本文 (BEGIN/END CERTIFICATE タグの間のデータ) は 1 行の文字列である必要があります。
結果の 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>'
例:
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-----'
または、PSTCLIでLinuxステーション(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を使用して再接続すると、証明書の拇印が変更されたという警告も表示されます。これは、新しい証明書が正常にインストールされたことを示します。