はじめに
このドキュメントでは、FMCによって管理されるFirepower Threat Defense(FTD)デバイスの認証局(CA)インポートエラーのトラブルシューティングと解決方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- 公開キー インフラストラクチャ(PKI)
- Firepower Management Center(FMC)
- Firepower Threat Defense(FTD)
- OpenSSL
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。
- MacOS x 10.14.6以降
- FMC 6.4
- OpenSSL
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
背景説明
注:FTDで管理されるデバイスでは、証明書署名要求(CSR)を生成する前にCA証明書が必要です。
- CSRが外部サーバ(Windows ServerやOpenSSLなど)で生成される場合、FTDはキーの手動登録をサポートしていないため、手動登録方式は失敗します。PKCS12など、別の方法を使用する必要があります。
問題
この特定のシナリオでは、図に示すように、FMCのCA証明書ステータスに赤い十字が表示されます。これは、証明書登録がCA証明書をインストールできなかったことを示し、「Fail to configure CA certificate」というメッセージを伴います。 このエラーは、図に示すように、証明書が正しくパッケージされていない場合、またはPKCS12ファイルに正しい発行者証明書が含まれていない場合によく発生します。
注:新しいFMCバージョンでは、この問題は、.pfx証明書の信頼のチェーンに含まれるルートCAを使用して追加のトラストポイントを作成するASAの動作と一致するように対処されています。
解決方法
ステップ 1:.pfx証明書の検索
FMC GUIに登録されたpfx証明書を取得し、保存してMac端末(CLI)でファイルを見つけます。
ls
ステップ 2:.pfxファイルからの証明書とキーの抽出
pfxファイルからクライアント証明書(CA証明書ではない)を抽出します(.pfxファイルの生成に使用したパスフレーズが必要です)。
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out id.pem
IDエクスポート
CA証明書(クライアント証明書ではない)を抽出します。
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out certs.pem
cacertsエクスポート
pfxファイルから秘密キーを抽出します(手順2と同じパスフレーズが必要です)。
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
キーエクスポート
cert.pfx(元のpfxバンドル)、certs.pem(CA証明書)、id.pem(クライアント証明書)、key.pem(秘密キー)の4つのファイルが存在します。
書き出し後のls
ステップ 3:テキストエディタでの証明書の確認
テキストエディタ(nano certs.pemなど)を使用して証明書を確認します。
この特定のシナリオでは、certs.pemには下位CA(発行側CA)のみが含まれています。
この記事では、ステップ5から始まる、ファイルcerts.pemに2つの証明書(1つのルートCAと1つのサブCA)が含まれているシナリオの手順について説明します。
certsビュー
ステップ 4:メモ帳での秘密キーの確認
テキストエディタ(nano certs.pemなど)を使用して、key.pemファイルの内容を確認します。
ステップ 5:CA証明書の分割
certs.pemファイルに2つの証明書(1つのルートCAと1つの下位CA)がある場合、検証のために下位CAだけをチェーンに残したまま、pfx形式の証明書をFMCにインポートできるようにするには、ルートCAを信頼チェーンから削除する必要があります。
certs.pemを複数のファイルに分割し、次のコマンドで証明書の名前をcacert-XXに変更します。
split -p "-----BEGIN CERTIFICATE-----" certs.pem cacert-
分割後の分割
次に説明するコマンドを使用して、これらの新しいファイルに.pem拡張子を追加します。
for i in cacert-*;do mv "$i" "$i.pem";done
スクリプト名の変更
2つの新しいファイルを確認し、説明したコマンドを使用して、ルートCAとサブCAを含むファイルを判別します。
最初に、id.pemファイル(ID証明書)の発行者を見つけます。
openssl x509 -in id.pem -issuer -noout
発行者ビュー
ここで、2つのcacert – ファイル(CA証明書)のサブジェクトを見つけます。
openssl x509 -in cacert-aa.pem -subject -noout
openssl x509 -in cacert-ab.pem -subject -noout
件名チェック
前の図に示すように、id.pemファイルの発行者とサブジェクト(SUBJECT)が一致するcacertファイルは、後でPFX証明書の作成に使用されるサブCAです。
Subjectが一致しないcacertファイルを削除します。この場合、その証明書はcacert-aa.pemです。
rm -f cacert-aa.pem
手順 6:PKCS12ファイルでの証明書のマージ
サブCA証明書(この例では名前はcacert-ab.pem)を、ID証明書(id.pem)および秘密キー(key.pem)と一緒に新しいpfxファイルにマージします。このファイルはパスフレーズで保護する必要があります。必要に応じて、cacert-ab.pemファイル名をファイルに一致するように変更します。
openssl pkcs12 -export -in id.pem -certfile cacert-ab.pem -inkey key.pem -out new-cert.pfx
pfx作成
手順 7:FMCでのPKCS12ファイルのインポート
図に示すように、FMCでDevice > Certificatesに移動し、目的のファイアウォールに証明書をインポートします。
証明書の登録
新しい証明書の名前を挿入します。
登録
新しい証明書を追加し、登録プロセスによって新しい証明書がFTDに展開されるまで待ちます。
新しい証明書
新しい証明書は、CAフィールドに赤い十字なしで表示される必要があります。
確認
このセクションでは、設定が正常に動作していることを確認します。
Windowsでは、.pfxファイルにはID証明書のみが含まれていても、OSが証明書のチェーン全体を表示するという問題が発生する場合があります。この場合、ストアにsubCA、CAチェーンが含まれています。
.pfxファイル内の証明書のリストを確認するには、certutilやopensslなどのツールを使用できます。
certutil -dump cert.pfx
certutilは、.pfxファイル内の証明書の一覧を提供するコマンドラインユーティリティです。ID、SubCA、CAが含まれているチェーン全体が表示されます(存在する場合)。
または、次のコマンドで示すように、opensslコマンドを使用できます。
openssl pkcs12 -info -in cert.pfx
CAおよびID情報とともに証明書のステータスを確認するには、アイコンを選択して、正常にインポートされたことを確認します。