はじめに
このドキュメントでは、Cisco Telemetry Broker(CTB)ManagerノードのサーバID証明書(SA)を置き換える方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Telemetry Brokerアプライアンスの管理
- x509証明書
使用するコンポーネント
このドキュメントで使用するアプライアンスは、バージョン2.0.1を実行しています
- Cisco Telemetry Broker Managerノード
- Cisco Telemetry Broker Brokerノード
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
証明書の要件
Cisco Telemetry Broker Managerで使用されるx509証明書は、次の要件を満たす必要があります。
- 証明書と秘密キーは一致するペアでなければなりません
- 証明書と秘密キーはPEMでエンコードする必要があります
- 秘密キーはパスフレーズで保護できません
証明書と秘密キーが一致するペアであることを確認する
管理ユーザとしてCTB Managerコマンドラインインターフェイス(CLI)にログインします。
注:このセクションで説明したファイルがシステム上にまだ存在していない可能性があります。
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にログインします。boot flash:packages.conf コマンドを実行します。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 Managerにログインします。通常、このユーザは「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}
コマンドを発行します。
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 Managerにログインします。通常、このユーザは「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}
の変更
{key_len}
を、2048、4096、8192などの任意の秘密キーの長さで変更します。
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マネージャノードのすべてのチェーン証明書とサーバID証明書を含むチェーンファイルを作成する必要があります。
テキストエディタで、前の手順で署名した証明書を組み合わせ、信頼できるCAを含むすべての証明書をチェーン内のすべての証明書を示されている順序でPEM形式の1つのファイルに追加して、ファイルを作成します。
— 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 Broker Node NodeはManager Nodeと通信できず、Broker Nodeのリストの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が確認できるようにmaydayバンドルを生成します。