証明書の管理
証明書とは
証明書は、個人、サーバー、会社、または別のエンティティを識別し、そのエンティティを公開キーに関連付ける電子文書です。公開キーを使用して証明書を作成すると、一致する秘密キーも生成されます。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 内部 コミュニケーション(Communication) |
|
Crosswork |
Crosswork Data Gateway Crosswork |
ダウンロード |
5 年 |
— |
CW Web サーバー |
CW Web 証明書(CW-Web-Certificate) サーバー認証 |
|
Crosswork Web サーバー |
ユーザーブラウザまたは API クライアント |
|
5 年 |
30 日 ~ 5 年 |
ZTP SUDI |
CW ZTP デバイスの SUDI(CW-ZTP-Device-SUDI) |
|
Crosswork ZTP |
Device |
|
100 日 |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
セキュア ZTP プロビジョニング |
CW ZTP 所有者(CW-ZTP-Owner) |
|
Crosswork ZTP |
Device |
|
5 年 |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
デバイスの Syslog |
CW デバイスの Syslog(CW-Device-Syslog) |
|
Crosswork Data Gateway |
Device |
ダウンロード |
5 年 |
— |
デバイス gNMI 通信 |
— |
デバイスと Crosswork Data Gateway 間の GNMI テレメトリ通信を提供します。 |
Crosswork Data Gateway |
Device |
|
N/A |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
サーバー Syslog 通信 |
— |
|
外部 Syslog サーバー |
Crosswork |
|
— |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
外部接続先 |
— |
相互認証を実行した後、Crosswork Data Gateway から外部接続先(Kafka または gRPC)にテレメトリデータをエクスポートします。 |
外部接続先(Kafka または gRPC) |
Crosswork Data Gateway |
|
— |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
外部接続先サーバー認証 |
— |
サーバーベースの認証を実行した後、Crosswork Data Gateway から外部接続先(Kafka または gRPC)にテレメトリデータをエクスポートします。 |
外部 Crosswork Data Gateway 接続先(Kafka または gRPC) |
||||
セキュア LDAP 通信 |
— |
Crosswork は、セキュア LDAP サーバーを認証するために、この証明書の信頼チェーンを使用します。 |
セキュア LDAP サーバー |
Crosswork |
|
— |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
アプリケーション外部接続先 |
— |
Crosswork から Kafka 接続先にテレメトリデータをエクスポートします。 |
外部 Kafka 接続先 |
Crosswork |
アップロード |
— |
30 日間までの日付範囲を選択します。この値はユーザーが定義します |
異なる接続先に関連付けられた複数の証明書をアップロードできます。
Crosswork には 2 つのカテゴリロールがあります。
-
信頼チェーンのみをアップロードまたはダウンロードできるロール。
-
信頼チェーンと中間証明書およびキーの両方のアップロードまたはダウンロードを許可するロール。
新しい証明書の追加
このトピックでは、新しい証明書を追加する手順について説明します。
次のロールの証明書を追加できます。
-
[外部接続先(External Destination)]:このロール用にアップロードした証明書は、Crosswork Data Gateway と外部接続先(Kafka サーバーなど)間の通信を保護するために使用されます。相互認証を有効にするには、Crosswork Data Gateway と外部サーバーの両方に共通する CA 証明書信頼チェーンをアップロードします。この信頼チェーンには、ルート CA 証明書と任意の数のオプションの中間 CA 証明書が含まれています。チェーンの最後の中間証明書とそれに対応する秘密キーは、中間キー、中間証明書、およびオプションでパスフレーズ(中間キーの生成に使用した場合)を使用して UI に個別にアップロードされます。Crosswork は、外部接続先に接続する Crosswork Data Gateway のこの中間キーを使用して、クライアント証明書を内部的に作成します。接続先(Kafka など)のサーバー証明書の信頼は、同じルート CA 証明書から取得する必要があります。
証明書を [外部接続先(External Destination)] ロールにアップロードできます。認証タイプは、[接続先の追加(Add Destination)] ページで [相互認証(Mutual-Auth)] として選択する必要があります。認証タイプの詳細については、データ宛先の追加または編集を参照してください。
-
[サーバーSyslog通信(Server Syslog Communication)]:ユーザーは、Syslog サーバー証明書の信頼チェーンをアップロードします。この信頼チェーンは、Syslog サーバーを認証するために Crosswork で使用されます。この信頼チェーンがアップロードされ、Crosswork 内に伝達されると、ユーザーは syslog サーバーを追加して(Syslog サーバーの設定を参照してください。
)、証明書を関連付けて TLS を有効にできます。詳細については、 -
[デバイスgNMI通信(Devices gNMI communication)]:ユーザーは、接続しているデバイスを認証するために Crosswork Data Gateway で使用される信頼チェーンのバンドルをアップロードします。この信頼チェーンとデバイス gNMI 証明書もデバイスで設定する必要があります。アップロードする信頼チェーンファイルには、ネットワーク内のすべてのデバイスが接続できるように、必要に応じて信頼証明書の階層を複数含めることができます。詳細については、「gNMI 証明書の設定」を参照してください。
-
[セキュアLDAP通信(Secure LDAP Communication)]:ユーザーは、セキュア LDAP 証明書の信頼チェーンをアップロードします。この信頼チェーンは、LDAP サーバーを認証するために Crosswork で使用されます。この信頼チェーンがアップロードされて Crosswork 内に伝播されると、ユーザーは LDAP サーバーを追加し(LDAP サーバーの管理 を参照)、証明書を関連付けることができます。
-
[外部接続先サーバー認証(External Destination Server Auth)]:ユーザーは、ルート CA 証明書をアップロードします。この証明書は、Crosswork Data Gateway と外部接続先(Kafka サーバーなど)間のセキュア通信を確立するために使用されます。
認証タイプが [サーバー認証(Server-Auth)] に設定されている場合にのみ、証明書を [外部接続先サーバー認証(External Destination Server Auth)] ロールにアップロードできます。認証タイプの詳細については、データ宛先の追加または編集を参照してください。
-
[アプリケーション外部接続先(Application External Destination)]:ユーザーはアプリケーション証明書をアップロードして、テレメトリデータを外部の Kafka 接続先に安全に転送できます。Kafka チャネルは相互 TLS によって保護され、TLS Manager は外部 Kafka で使用される証明書の管理を担います。
証明書のタイプと使用方法については、「証明書のタイプと使用方法」を参照してください。
![]() (注) |
Cisco Crosswork は、Web 証明書を直接受信しません。中間 CA と中間キーを受け入れて新しい Web 証明書を作成し、Web ゲートウェイに適用します。 |
(Cisco Crosswork 内で提供されるデフォルトの証明書を使用する代わりに)独自の ZTP と Web 証明書をアップロードする場合は、[編集(Edit)] 機能を使用します(証明書の編集を参照)。
始める前に
-
アップロードするすべての証明書がプライバシー強化メール(PEM)形式である必要があります。簡単に移動できるように、これらの証明書がシステム内のどこにあるかに注意してください。
-
アップロードする信頼チェーンファイルには同じファイル内の階層全体(ルート CA と中間証明書)が含まれている場合があります。場合によっては、同じファイルで複数のチェーンを使用することもできます。
-
中間キーは、PKCS1 形式または PKCS8 形式である必要があります。
-
外部接続先の新しい証明書を追加する前に、データ送信先を設定する必要があります。詳細については、「データ宛先の追加または編集」を参照してください。
-
複数の送信先を持つ証明書を追加または更新する場合は、送信先に対して収集ジョブが設定されていないことを確認します。
-
tyk サービスが正常な状態であることを確認します。
手順
ステップ 1 |
メインメニューから |
||
ステップ 2 |
署名書の一意の名前を入力します。 |
||
ステップ 3 |
[証明書のロール(Certificate Role)] ドロップダウンメニューから、証明書を使用する目的を選択します。詳細については、「証明書のタイプと使用方法」を参照してください。
|
||
ステップ 4 |
[参照(Browse)] をクリックして証明書の信頼チェーンに移動します。 |
||
ステップ 5 |
[外部接続先(External Destination)] 証明書の場合は、1 つ以上の接続先を選択し、CA 証明書の信頼チェーン、中間証明書、および中間キーを指定する必要があります。パスフレーズフィールドはオプションで、中間キーの作成に使用されます(該当する場合)。 |
||
ステップ 6 |
[保存(Save)] をクリックします。
|
証明書の編集
Crosswork Network Controller では、中間認証局(CA)証明書をインポートすることで Web 証明書を更新できます。証明書を編集して、接続先を追加または削除したり、期限切れまたは誤って設定された証明書をアップロードまたは置換できます。これは、ユーザー指定の証明書、ZTP 証明書および Web 証明書に適用されます。一方、Cisco Crosswork が提供するシステム証明書は変更できず、選択できません。
Crosswork Network Controller では、Web 証明書のクライアント認証を設定することもできます。クライアント認証は、Crosswork でユーザー認証を設定するための代替方法を提供し、クライアントとサーバーの両方がアイデンティティを検証するためのデジタル証明書を提示する必要があります。この機能を有効にすると、よりシームレスなログインエクスペリエンスをユーザーに提供できます。
また、この手順に従って証明書を「削除」して証明書を置き換えるか、または割り当てられた接続先のセキュリティを無効にする([セキュアな通信を有効にする(Enable Secure Communication)] オプションを無効にする)こともできます(「データ宛先の追加または編集」を参照)。Cisco Crosswork システムからの証明書の永続的な削除はサポートされていません。
始める前に
-
証明書を更新すると、クライアント認証に使用される既存の証明書信頼チェーンが破壊される可能性があるため、慎重に操作を進めてください。
-
このプロセスでは Crossworkサーバーを再起動する必要があるため、完了するまで数分かかります。
-
クライアント認証を有効にするには、AAA モードをローカルに設定します。
手順
ステップ 1 |
メインメニューから、 ウィンドウを表示します。 を選択し、[証明書の管理(Certificate Management)] |
ステップ 2 |
証明書を更新するには、次の手順を実行します。 |
ステップ 3 |
Web 証明書のクライアント証明書認証を有効にするには、次の手順を実行します。 |
ステップ 4 |
1 ステップで証明書を更新してクライアント認証を設定するには、次の手順を実行します。 |
証明書のダウンロード
証明書をエクスポートするには、次の手順を実行します。
手順
ステップ 1 |
メインメニューから を選択します。 |
ステップ 2 |
ダウンロードする証明書の ![]() |
ステップ 3 |
ルート証明書、中間証明書、および秘密キーを個別にダウンロードするには、 |
証明書の更新
Kubernetes 証明書の更新
証明書は、有効期限が切れるまで 1 年間有効です。証明書を更新した後、他の操作を再開する前に、ポッドが正常であることを確認します。
![]() (注) |
有効期限が切れる前に証明書を更新する場合は、クラスタが動作状態にあるため、メンテナンスウィンドウ中にこのアクティビティを実行することをお勧めします。 |
証明書を更新するには、次の手順を実行します。
始める前に
-
サーバーの SSH ログインパスワードを含むプレーンテキストファイルをローカルマシンに作成します(
password.txt
など)。 -
クラスタ内のハイブリッドノードとワーカーノードの管理 IP アドレスをすぐに使用できるようにしておきます。
手順
ステップ 1 |
Crosswork Network Controller のバックアップを作成します。 |
||
ステップ 2 |
いずれかのハイブリッドノードにログインします。 |
||
ステップ 3 |
次のコマンドを実行します。
パラメータをクラスタ内のノードの管理 IP アドレスに置き換えます。
次に例を示します。
|
内部証明書の自動更新
Crosswork CA は、Day 0 展開(Geo HA および非 Geo HA)用に、ルート証明書、中間 CA 証明書、リーフ証明書を含む TLS 証明書チェーンを生成します。リーフ証明書は 2 年間有効です。一方、ルートおよび中間 CA 証明書は 5 年間有効です。2 年を超えて Crosswork を導入しているお客様は、証明書の有効期限が切れ、TLS 通信が中断され、クラスタの運用が影響を受けます。自動更新は、NATS、Kafka、およびアプリケーション固有の内部証明書を含む、内部で生成されたすべての Crosswork 証明書に適用されます。
更新アラートは、有効期限が 60 日未満の場合にのみ生成されます。1 つの内部証明書の有効期限が切れて更新されると、そのタイプのすべての内部証明書が更新されます。たとえば、リーフ証明書が更新されると、プロセスにより他のすべてのリーフ証明書も更新されます。
![]() 重要 |
Geo HA 展開の場合:
|
証明書の更新プロセスにより、約 30 分から 1 時間のダウンタイムが発生する可能性があります。クラスタ運用の中断を避けるために、このアクティビティはメンテナンス期間中に実行することをお勧めします。
内部証明書を更新するには、次の手順を実行します。
手順
ステップ 1 |
メインメニューから を選択します。[証明書の管理(Certificate Management)] ウィンドウが表示されます。内部証明書の有効期限が近づいている場合は、証明書の更新を求めるメッセージが表示されます。
![]() |
||
ステップ 2 |
[内部証明書の更新(Renew Internal Certificate)] をクリックします。確認ポップアップが表示されます。[更新(Renew)] をクリックして確定します。 ![]() このアクションにより、REST API(/v2/cert/renew)が呼び出され、証明書の有効期限チェックが開始されます。新しい更新ジョブに関する通知が [証明書の管理(Certificate Management)] ウィンドウに表示されます。 ![]() 更新ジョブの進行状況は、[ジョブ(Jobs)] タブで確認できます。ジョブが完了すると、正常に完了したことを示す情報アラームイベントが発生します。このアラームを手動でクリアすると、イベントを確認したことになります。プロセス中にエラーが発生すると、ジョブは失敗します。ただし、この API にはべき等性があるため、ジョブを再度トリガーできます。 |
||
ステップ 3 |
Geo HA 展開の場合:証明書の更新が正常に完了したら、アクティブクラスタとスタンバイクラスタの間でオンデマンドまたは定期的な同期を実行し、非同期レプリケーションがセキュアなチャネルを介して再確立されるようにします。 |
||
ステップ 4 |
更新ジョブが完了したら、次の手順を実行して、Crosswork と他の外部コンポーネント間で TLS 通信が維持されるようにします。 |