はじめに
このドキュメントでは、Cisco Telemetry Broker(CTB)ManagerノードでサーバID証明書(SID)を置き換える方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Telemetry Brokerアプライアンス管理
- x509証明書
使用するコンポーネント
このドキュメントで使用するアプライアンスは、バージョン2.0.1を実行しています
- Cisco Telemetry Broker Managerノード
- Cisco Telemetry Brokerブローカーノード
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
証明書の要件
Cisco Telemetry Broker Managerが使用するx509証明書は、次の要件を満たす必要があります。
- 証明書と秘密キーは一致するペアでなければなりません
- 証明書と秘密キーはPEMでエンコードする必要があります
- 秘密キーはパスフレーズで保護できません
証明書と秘密キーがペアで一致していることを確認します
CTB Managerコマンドラインインターフェイス(CLI)にadminユーザとしてログインします。
注:このセクションで説明するファイルがシステム上にまだ存在していない可能性があります。
sudo openssl req -in server.csr -pubkey -noout -outform pem | sha256sum
コマンドは、証明書署名要求(CSR)ファイルの公開キーのSHA-256チェックサムを出力します。
sudo openssl pkey -in server_key.pem -pubout -outform pem | sha256sumコマンドは、秘密キーファイルから公開キーのSHA-256チェックサムを出力します。
sudo openssl x509 -in server_cert.pem -pubkey -noout -outform pem | sha256sumコマンドは、発行された証明書ファイルの公開キーのSHA-256チェックサムを出力します。
証明書と秘密キーの出力が一致している必要があります。証明書署名要求(CSR)が使用されていない場合、server_cert.pemファイルは存在しません。
admin@ctb-manager:~$ sudo openssl req -in server.csr -pubkey -noout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 - admin@ctb-manager:~$ admin@ctb-manager:~$ sudo openssl pkey -in server_key.pem -pubout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 - admin@ctb-manager:~$ sudo openssl x509 -in server_cert.pem -pubkey -noout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 -
秘密キーがパスフレーズで保護されていないことを確認します
管理ユーザとしてCTB Managerにログインします。ssh-keygen -yf server_key.pemコマンドを実行します。
秘密鍵が不要な場合、パスフレーズは要求されません。
admin@ctb-manager:~$ ssh-keygen -yf server_key.pem ssh-rsa {removed for brevity} admin@ctb-manager:~$
証明書と秘密キーがPEMでエンコードされていることの確認
注:これらの検証は、証明書をインストールする前に実行できます。
管理ユーザとしてCTB Managerにログインします。
sudo cat server_cert.pem コマンドを使用して、server_cert.pemファイルの内容を表示します。証明書ファイル名に合わせてコマンドを調整します。
ファイルの最初の行は -----BEGIN CERTIFICATE----- 、最後の行は-----END CERTIFICATE-----にする必要があります。
admin@ctb-manager:~$ sudo cat server_cert.pem -----BEGIN CERTIFICATE----- {removed_for_brevity} -----END CERTIFICATE----- admin@ctb-manager:~$
sudo cat server_key.pemコマンドを使用して、server_key.pemファイルを表示します。秘密キーのファイル名に合わせてコマンドを調整します。
ファイルの最初の行は -----BEGIN PRIVATE KEY----- 、最後の行は-----END PRIVATE KEY-----にする必要があります。
admin@ctb-manager:~$ sudo cat server_key.pem -----BEGIN PRIVATE KEY----- {removed_for_brevity} -----END PRIVATE KEY----- admin@ctb-manager:~$
自己署名証明書
自己署名証明書の生成
- インストール時に設定したユーザとして、SSH(セキュアシェル)を介してCTBマネージャにログインします。通常は「admin」ユーザです。
sudo openssl req -x509 -newkey rsa:{key_len} -nodes -keyout server_key.pem -out server_cert.pem -sha256 -days 3650 -subj /CN={ctb_manager_ip} コマンドを発行します。
- 2048、4096、8192など、選択した秘密キーの長さで
rsa:{key_len}を変更します
- CTBマネージャノードのIPを使用した
{ctb_manager_ip}の変更
admin@ctb-manager:~$ sudo openssl req -x509 -newkey rsa:4096 -nodes -keyout server_key.pem -out server_cert.pem -sha256 -days 3650 -subj /CN=10.209.35.152
[sudo] password for admin:
Generating a RSA private key
.....................................................................................++++
............................................................................++++
writing new private key to 'server_key.pem'
-----
admin@ctb-manager:~$
cat server_cert.pemコマンドでserver_cert.pemファイルを表示し、内容をバッファにコピーして、ローカルワークステーションに任意のテキストエディタで貼り付けられるようにします。ファイルを保存します。これらのファイルは、デ /home/admin ィレクトリからSCPでダウンロードすることもできます。
admin@ctb-manager:~$ cat server_cert.pem
-----BEGIN CERTIFICATE-----
{removed_for_brevity}
-----END CERTIFICATE-----
admin@ctb-manager:~$
sudo cat server_key.pemコマンドでserver_key.pemファイルを表示し、内容をバッファにコピーして、選択したテキストエディタでローカルワークステーションに貼り付けられるようにします。ファイルを保存します。また、このファイルをデ /home/admin ィレクトリからSCP送信することもできます。
admin@ctb-manager:~$ sudo cat server_key.pem
-----BEGIN PRIVATE KEY-----
{removed_for_brevity}
-----END PRIVATE KEY-----
admin@ctb-manager:~$
自己署名証明書のアップロード
認証局(CA)が発行した証明書
証明機関による発行のための証明書署名要求(CSR)の生成
- インストール時に設定したユーザとして、SSH(セキュアシェル)を介してCTBマネージャにログインします。通常は「admin」ユーザです。
openssl req -new -newkey rsa:{key_len} -nodes -addext "subjectAltName = DNS:{ctb_manager_dns_name},IP:{ctb_manager_ip}" -keyout server_key.pem -out server.csrコマンドを発行します。最後の2行の「extra」属性は、必要に応じて空白にしておくことができます。
{ctb_manager_dns_name}
- を、CTBマネージャノードのDNS名に変更します
- CTBマネージャノードのIPを使用した
{ctb_manager_ip}の変更
- 2048、4096、8192など、選択した秘密キーの長さで
{key_len} を変更します。
admin@ctb-manager:~$ openssl req -new -newkey rsa:4096 -nodes -addext "subjectAltName = DNS:ctb-manager,IP:10.209.35.152" -keyout server_key.pem -out server.csr
Generating a RSA private key
......................++++
....................................++++
writing new private key to 'server_key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:North Carolina
Locality Name (eg, city) []:RTP
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cisco Systems Inc
Organizational Unit Name (eg, section) []:TAC
Common Name (e.g. server FQDN or YOUR name) []:ctb-manager
Email Address []:noreply@cisco.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
- CSRとキーファイルをローカルマシンにSCPし、CAにCSRを提供します。PEM形式でのCAによるCSRの発行は、このドキュメントの対象範囲外です。
チェーンを使用した証明書の作成
CAは、PEM形式でサーバID証明書を発行します。CTB Managerノードのすべてのチェーン証明書とサーバID証明書を含むチェーンファイルを作成する必要があります。
テキストエディタで、前の手順で署名した証明書を組み合わせ、信頼できるCAを含むチェーン内のすべての証明書を示されている順序で単一のPEM形式のファイルに追加して、ファイルを作成します。
— BEGIN CERTIFICATE — {CTB Manager Issued Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Issuing Certificate Authority Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Intermediate Certificate Authority Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Root Certificate Authority Certificate} — END CERTIFICATE —
この新しい証明書ファイルとチェーンファイルの先頭または末尾にスペースと空白行が含まれていないこと、および証明書ファイルが上記の順序になっていることを確認します。
認証局が発行した証明書のアップロード
確認
CTBマネージャノードのWebコンソールにログインし、Settings > TLS Certificate に移動して、新しい有効期限などの証明書の詳細を表示するか、ブラウザを使用してシリアル番号などの詳細な情報を表示します。
CTB証明書の詳細
CTBマネージャノードのWeb UIで、CTBブローカノードにアラームが表示されていないことを確認します。
トラブルシュート
チェーン証明書がないなど、証明書が不完全な場合、CTBブローカノードノードはマネージャノードと通信できず、ブローカノードリストの「Status」列に「Not Seen Since」と表示されます。
ブローカノードは、この状態のトラフィックの複製と分散を継続します。
CTBマネージャノードCLIにログインし、sudo grep -ic begin /var/lib/titan/titanium_frontend/ssl/cert.pem コマンドを発行してcert.pemファイル内の証明書の数を確認します。
admin@ctb-manager:~$ sudo grep -ic begin /var/lib/titan/titanium_frontend/ssl/cert.pem [sudo] password for admin: 3 <-- Output admin@ctb-manager:~$
返される出力値は、チェーン内のCAデバイスの数にCTB Managerを加えた数と同じである必要があります。
自己署名証明書を使用している場合は、1の出力が予期されます。
PKIインフラストラクチャが、発行側CAでもある単一のルートCAで構成されている場合、2の出力が予想されます。
PKIインフラストラクチャがルートCAと発行側CAで構成されている場合、3の出力が予想されます。
PKIインフラストラクチャがルートCA、下位CA、および発行側CAで構成されている場合は、4の出力が予想されます。
Microsoft Windows Crypto Shell Extensionsなどの別のアプリケーションで証明書を表示する際にリストされるPKIと出力を比較してください。
PKI インフラストラクチャ
次の図では、PKIインフラストラクチャにルートCAと発行側CAが含まれています。
このシナリオでは、コマンドの出力値は3になると想定されています。
出力が期待した結果にならない場合は、「チェーンによる証明書の作成」セクションの手順を確認して、証明書が失われたかどうかを確認します。
Microsoft Windows Crypto Shell Extensions の証明書を表示する際、ローカルマシンに証明書を確認するための十分な情報がないと、一部の証明書が表示されないことがあります。
CLIからsudo ctb-mayday コマンドを発行して、TACが確認できるようにメイデイバンドルを生成します。