証明書の管理
証明書とは
証明書は、個人、サーバー、会社、または別のエンティティを識別し、そのエンティティを公開キーに関連付ける電子文書です。公開キーを使用して証明書を作成すると、一致する秘密キーも生成されます。TLS では、公開キーはエンティティに送信されるデータの暗号化に使用され、秘密キーは復号に使用されます。証明書は、発行者または「親」証明書(認証局)によって、つまり、親の秘密キーによって署名されます。証明書は自己署名することもできます。TLS の交換では、証明書の発行者の有効性を確認するために証明書の階層が使用されます。この階層は信頼チェーンと呼ばれ、ルート CA 証明書(自己署名)、場合によっては複数レベルの中間 CA 証明書、およびサーバー(またはクライアント)証明書(エンドエンティティ)の 3 つのタイプで構成されます。中間証明書は、サーバー証明書を CA のルート証明書にリンクし、追加のセキュリティ層を提供する「信頼のリンク」として機能します。ルート証明書の秘密キーから開始し、信頼チェーン内の各証明書の秘密キーは、最終エンティティ証明書に最終的に署名するまで、チェーン内の次の証明書に署名して発行します。エンドエンティティ証明書は、チェーン内の最後の証明書であり、クライアント証明書またはサーバー証明書として使用されます。これらのプロトコルの詳細については、「X.509 証明書」と「HTTPS」を参照してください。
Crosswork での証明書の使用方法
Crosswork アプリケーションとデバイス間の通信やさまざまな Crosswork コンポーネント間の通信は、TLS プロトコルを使用して保護されます。TLS は X.509 証明書を使用して安全にデバイスを認証し、データを暗号化して送信元から接続先までその整合性を確保します。Crosswork は、生成された証明書とクライアントがアップロードした証明書を組み合わせて使用します。アップロードされた証明書は、認証局(CA)から購入するか、自己署名することができます。たとえば、Cisco Crosswork VM がホストする Web サーバーとクライアントブラウザベースのユーザーインターフェイスは、TLS 経由で交換される Crosswork によって生成された X.509 証明書を使用して相互に通信します。
Crosswork Cert Manager は、分散フレームワーク内の複数のマイクロサービスおよびサービスのプロキシであり、すべての Crosswork 証明書を管理します。証明書管理 の UI(
)を使用すると、証明書を表示、アップロード、および変更できます。次の図に、Cisco Crosswork が提供するデフォルトの証明書を示します。証明書のタイプと使用方法
次の図に、Crosswork がさまざまな通信チャネルで証明書を使用する方法を示します。
これらの証明書は、次の表に示すように、使用例に応じて異なるプロパティを持つさまざまなロールに分類されます。
ロール |
UI 名 |
説明 |
サーバー |
クライアント |
許可される操作 |
デフォルトの有効期限 |
許可される有効期限 |
||
---|---|---|---|---|---|---|---|---|---|
Crosswork(CW)内部 TLS |
CW 内部通信(CW- Internal- Communication) |
|
CW |
|
ダウンロード |
5 年 |
— |
||
CW Web サーバー |
CW Web 証明書(CW-Web-Certificate) サーバー認証 |
|
CW Web サーバー |
ユーザーブラウザまたは API クライアント |
|
5 年 |
30 日 ~ 5 年 |
||
ZTP SUDI |
CW ZTP デバイスの SUDI(CW-ZTP-Device-SUDI) |
|
CW ZTP |
Device |
|
100 日 |
30 日 ~ ユーザー定義 |
||
セキュア ZTP プロビジョニング |
CW ZTP 所有者(CW-ZTP-Owner) |
|
CW ZTP |
Device |
|
5 |
30 日 ~ ユーザー定義 |
||
デバイスの Syslog |
CW デバイスの Syslog(CW-Device-Syslog) |
|
CDG |
Device |
ダウンロード |
5 年 |
— |
||
デバイス gNMI 通信 |
— |
デバイスと CDG 間の GNMI テレメトリ通信を提供します。 |
CDG |
Device |
|
N/A |
30 日 ~ ユーザー定義 |
||
サーバーの Syslog |
N/A |
|
外部 Syslog サーバー |
Crosswork |
|
— |
30 ~ ユーザー定義 |
||
外部接続先 |
— |
CDG から外部接続先(Kafka または GRPC)にテレメトリデータをエクスポートします。 |
外部接続先(Kafka または GRPC) |
CDG |
|
— |
30 ~ ユーザー定義 |
Crosswork には 2 つのカテゴリロールがあります。
-
信頼チェーンのみをアップロードまたはダウンロードできるロール
-
信頼チェーンと中間証明書およびキーの両方のアップロードまたはダウンロードを許可するロール
新しい証明書の追加
次のロールの証明書を追加できます。
-
[外部接続先(External Destination)]:このロール用にアップロードした証明書は、CDG と外部接続先(Kafka サーバーなど)間の通信を保護するために使用されます。相互認証を有効にするには、CDG と外部サーバーの両方に共通する CA 証明書信頼チェーンをアップロードします。この信頼チェーンには、ルート CA 証明書と任意の数のオプションの中間 CA 証明書が含まれています。チェーンの最後の中間証明書とそれに対応する秘密キーは、中間キー、中間証明書、およびオプションでパスフレーズ(中間キーの生成に使用した場合)を使用して UI に個別にアップロードされます。Crosswork は、外部接続先に接続する CDG のこの中間キーを使用して、クライアント証明書を内部的に作成します。接続先(Kafka など)のサーバー証明書の信頼は、同じルート CA 証明書から取得する必要があります。
-
[Syslogサーバー通信(Syslog Server Communication)]:ユーザーは Syslog サーバー証明書の信頼チェーンをアップロードします。この信頼チェーンは、Syslog サーバーを認証するために Crosswork で使用されます。この信頼チェーンがアップロードされ、Crosswork 内に伝達されると、ユーザーは syslog サーバーを追加して(Syslog サーバーの設定」を参照してください。
)、証明書を関連付けて TLS を有効にできます。詳細については、「 -
[デバイスgNMI通信(Devices gNMI communication)]:ユーザーは、接続しているデバイスを認証するために CDG で使用される信頼チェーンのバンドルをアップロードします。この信頼チェーンとデバイス gNMI 証明書もデバイスで設定する必要があります。アップロードする信頼チェーンファイルには、ネットワーク内のすべてのデバイスが接続できるように、必要に応じて信頼証明書の階層を複数含めることができます。詳細については、「gNMI 証明書の設定」を参照してください。
-
[セキュアLDAP通信(Secure LDAP Communication)]:ユーザーは、セキュア LDAP 証明書の信頼チェーンをアップロードします。この信頼チェーンは、LDAP サーバーを認証するために Crosswork で使用されます。この信頼チェーンがアップロードされて Crosswork 内に伝播されると、ユーザーは LDAP サーバーを追加し(LDAP サーバーの管理 を参照)、証明書を関連付けることができます。
(注) |
Cisco Crosswork は、Web 証明書を直接受信しません。中間 CA と中間キーを受け入れて新しい Web 証明書を作成し、Web ゲートウェイに適用します。 |
(Cisco Crosswork 内で提供されるデフォルトの証明書を使用する代わりに)独自の ZTP(ゼロタッチプロビジョニングの概念)と Web 証明書をアップロードする場合は、[編集(Edit)] 機能を使用します(「証明書の編集」を参照)。
始める前に
-
証明書のタイプと使用方法については、「証明書のタイプと使用方法」を参照してください。
-
アップロードするすべての証明書がプライバシー強化メール(PEM)形式である必要があります。簡単に移動できるように、これらの証明書がシステム内のどこにあるかに注意してください。
-
アップロードする信頼チェーンファイルには同じファイル内の階層全体(ルート CA と中間証明書)が含まれている場合があります。場合によっては、同じファイルで複数のチェーンを使用することもできます。
-
中間キーは、PKCS1 形式または PKCS8 形式である必要があります。
-
外部接続先の新しい証明書を追加する前に、データ送信先を設定する必要があります。詳細については、「データ宛先の追加または編集」を参照してください。
手順
ステップ 1 |
メインメニューから を選択し、 をクリックします。 |
||
ステップ 2 |
署名書の一意の名前を入力します。 |
||
ステップ 3 |
[証明書のロール(Certificate Role)] ドロップダウンメニューから、証明書を使用する目的を選択します。詳細については、「証明書の管理」を参照してください。 |
||
ステップ 4 |
[参照(Browse)] をクリックして証明書の信頼チェーンに移動します。 |
||
ステップ 5 |
外部接続先証明書の場合は、1 つ以上の接続先を選択し、CA 証明書の信頼チェーン、中間証明書、および中間キーを指定する必要があります。パスフレーズフィールドはオプションで、中間キーの作成に使用されます(該当する場合)。 |
||
ステップ 6 |
[保存(Save)] をクリックします。
|
証明書の編集
証明書を編集して、接続先を追加または削除したり、期限切れまたは誤って設定された証明書をアップロードおよび置換したりできます。ユーザー指定の証明書と、ZTP および Web 証明書を編集できます。Cisco Crosswork が提供するその他のシステム証明書は変更できず、選択できません。
また、この手順に従って証明書を「削除」して証明書を置き換えるか、または割り当てられた接続先のセキュリティを無効にする([セキュアな通信を有効にする(Enable Secure Communication)] オプションを無効にする)こともできます(「データ宛先の追加または編集」を参照)。Cisco Crosswork システムからの証明書の永続的な削除はサポートされていません。
(注) |
ZTP 証明書については、「ZTP アセットの組み立てと読み込み」を参照してください。 |
手順
ステップ 1 |
メインメニューから、 を選択し、変更する証明書を確認します。 |
||
ステップ 2 |
変更する証明書で をクリックし、[証明書の更新(Update Certificate)] を選択します。 |
||
ステップ 3 |
必要なオプションを更新します。
|
||
ステップ 4 |
[保存(Save)] をクリックします。 |
証明書のダウンロード
証明書をエクスポートするには、次の手順を実行します。
手順
ステップ 1 |
メインメニューから を選択します。 |
ステップ 2 |
ダウンロードする証明書の をクリックします。 |
ステップ 3 |
ルート証明書、中間証明書、および秘密キーを個別にダウンロードするには、 をクリックします。証明書と秘密キーすべてを一度にダウンロードするには、[すべてエクスポート(Export All)] をクリックします。 |
証明書の更新
証明書は、有効期限が切れるまで 1 年間有効です。以下の手順は、クラスタ内の各ノード(ハイブリッドとワーカー)で順番に実行する必要があります。1 つのノードで証明書を更新したら、次のノードに進む前にポッドが正常であることを確認します。
(注) |
有効期限が切れる前に証明書を更新する場合は、クラスタが動作状態にあるため、メンテナンスウィンドウ中にこのアクティビティを実行することをお勧めします。 |
証明書を更新するには、次の手順を実行します。
手順
ステップ 1 |
ノードで、コマンドを実行して root ユーザーに移動します。
パスワードを入力するように求められます。 |
||||
ステップ 2 |
証明書の日付が期限切れになっているかどうかを確認します。
次の画像は、出力のサンプルです。 |
||||
ステップ 3 |
証明書と conf ファイルのバックアップを作成します。
|
||||
ステップ 4 |
コマンドを実行して証明書を更新します。
|
||||
ステップ 5 |
手順 2 を繰り返して、新しい証明書の作成を確認します。 |
||||
ステップ 6 |
コマンドを実行して
kill -9 <pid> を使用)します。上記のプロセスを強制終了した後、以下を実行して kubelet を再起動します。
ノードは最初に
|
||||
ステップ 7 |
すべてのポッドが正常で実行されていることを確認します。
また、再起動したハイブリッドノードで実行中のポッドも検証します。 |
||||
ステップ 8 |
証明書が更新されているかどうかを確認します。 |
||||
ステップ 9 |
問題が引き続き発生する場合は、conf ファイルを変更します。
クラスター内のノードごとに上記の手順を繰り返します。 |