PKIの設定
Secure Socket Layer(SSL)サービス モジュールはSSLプロトコルを使用して、プライバシ、認証、およびデータ統合によるセキュアなデータ トランザクションを実現します。SSLプロトコルは、証明書、公開鍵、および秘密鍵を信頼します。
証明書はデジタルIDカードと同様に、クライアントに対してサーバIDを、およびサーバに対してクライアントIDを検証します。Certificate Authority(CA;認証局)が発行する証明書には、証明書が発行されたエンティティの名前、エンティティの公開鍵、および証明書の有効期限を示すタイム スタンプが含まれます。
公開鍵および秘密鍵は、情報の暗号化および復号化に使用される暗号です。公開鍵は制限なく共有されますが、秘密鍵は共有されません。公開鍵と秘密鍵はペアとして機能します。公開鍵を使用して暗号化されたデータは、対応する秘密鍵を使用しないと、復号化できません。
各SSLモジュールは、最大256台のクライアント/サーバに対する1台のSSLプロキシとして機能します。クライアントまたはサーバごとに鍵のペアを設定し、認証用として証明書に適用する必要があります。
証明書はNVRAM(不揮発性RAM)に保存することを推奨します。このようにすると、モジュールは、起動時に、証明書を入手または自動登録するようにCAに問い合わせる必要がなくなります。詳細については、「設定の保存」を参照してください。
SSLモジュールをSSLサーバとして設定し、サーバ プロキシにクライアント証明書を認証するように設定する場合、またはSSLモジュールをSSLクライアントとして設定する場合は、SSLモジュールが外部デバイスから受信する証明書を認証します。SSLモジュールは、受信した証明書の開始時刻、終了時刻、およびシグニチャを確認します。
鍵ペアが損なわれた場合には、有効な証明書が取り消される可能性があります。失効確認が必要な場合は、SSLモジュールがCAからCertificate Revocation List(CRL;証明書失効リスト)をダウンロードして、受信した証明書のシリアル番号を検索します。CRLの詳細については、「CRL」を参照してください。
また、特定の証明書のアトリビュート値をAccess Control List(ACL;アクセス制御リスト)と一致させて、証明書をフィルタリングすることもできます。信頼できるCAが発行した認証済みの証明書のみが、受け入れられます。ACLの詳細については、「証明書セキュリティのアトリビュートベース アクセス制御」を参照してください。
(注) 認証されるのは証明書のみで、証明書の送信者は認証されません。SSLハンドシェイクの一部として、証明書の送信者は、証明書で発行された公開鍵に対応する秘密鍵の所有に対してチャレンジされます。チャレンジが失敗した場合、SSLモジュールによりSSLハンドシェイクが打ち切られます。
ただし、SSLモジュールでは、証明書の送信者が予測されるエンド ユーザまたは通信セッションのホストであることを確認できません。エンド ユーザまたはホストを認証するには、ユーザ名およびパスワード、銀行口座番号、クレジット カード番号、または母親の旧姓を使用して、データ フェーズの間にさらに検証を行う必要があります。
証明書の送信者がSSLクライアントの場合、SSLモジュールはデータ フェーズの間にクライアント証明書からアトリビュートを引き出し、HTTPヘッダーにこれらのアトリビュートを挿入することができます。これらのヘッダーを受信したサーバ システムはさらに、証明書の件名および他のアトリビュートを検証し、エンド ユーザまたはホストの信頼性を判別します。HTTPヘッダー挿入の設定については、「HTTPヘッダー挿入」を参照してください。クライアント証明書認証の設定については、「クライアント証明書認証の設定」を参照してください。
ここでは、Public Key Infrastructure(PKI;公開鍵インフラストラクチャ)の設定方法について説明します。
•
「鍵および証明書の設定」
•
「証明書およびトラストポイントの確認」
•
「設定の保存」
•
「鍵および証明書のバックアップ」
•
「鍵および証明書のモニタおよびメンテナンス」
•
「プロキシ サービスへの証明書の割り当て」
•
「証明書の更新」
•
「証明書の自動更新および自動登録」
•
「鍵および証明書の履歴のイネーブル化」
•
「ピア証明書のキャッシュ」
•
「証明書期限切れ警告の設定」
鍵および証明書の設定
鍵および証明書を次のいずれかの方法で設定できます。
•
Simple Certificate Enrollment Protocol(SCEP)を使用している場合は、次の方法で鍵および証明書を設定します。
–
鍵ペアを生成します。
–
トラストポイント(信頼点)を宣言します。
–
CA証明書を取得します。
–
SSLサーバに代わり、CAに登録要求を送信します。
詳細は、「SCEPを使用するトラストポイントの設定」を参照してください。
•
SCEPを使用していない場合は、手動の証明書登録(Trivial File Transfer Protocol[TFTP;簡易ファイル転送プロトコル]およびカット&ペースト)機能を使用して、鍵と証明書を設定します。次の手順を実行してください。
–
鍵ペアを生成またはインポートします。
–
トラストポイントを宣言します。
–
PKCS10ファイルを作成するのに、TFTPまたはカット&ペーストによりCA証明書を取得し、トラストポイントを登録します。
–
PKCS10パッケージを使用して、SSLサーバ証明書をオフラインで要求します。
–
TFTPまたはカット&ペーストを使用して、SSLサーバ証明書をインポートします。
詳細については、「手動証明書登録」を参照してください。
•
外部PKIシステムを使用している場合は、次の手順を実行してください。
–
PKCS12ファイルまたはPEMファイルを生成します。
–
このファイルをモジュールにインポートします。
詳細については、「鍵ペアおよび証明書のインポートとエクスポート」を参照してください。
外部PKIシステムは、鍵ペアを生成し、CAまたは鍵からの証明書の登録やアーカイブ システムの認証を行うサーバまたはPKI管理システムです。Public-Key Cryptography Standards(PKCS)は、秘密鍵および証明書を含む、個人識別情報の転送構文を指定します。この情報は、暗号化ファイルに格納されます。暗号化ファイルを開くには、パス フレーズを取得する必要があります。暗号鍵は、パス フレーズから取得されます。
(注) PKCS12ファイルまたはPEMファイルをインポートする前にトラストポイントを設定する必要はありません。トラストポイントが未設定の場合は、PKCS12ファイルまたはPEMファイルから鍵および証明書をインポートすると、トラストポイントが自動作成されます。
鍵および証明書の設定の概要については、図 3-1を参照してください。
図 3-1 鍵および証明書の設定概要
RSA鍵ペアの生成
(注) Secure Shell(SSH;セキュア シェル)は、生成された最初の鍵ペアによってモジュールでイネーブルになります。SSHを使用する場合は、SSHの鍵ペアを設定します。「SSHの設定」を参照してください。
RSAは、Ron Rivest、Adi Shamir、およびLeonard Aldemanが開発した公開鍵暗号システムです。RSAアルゴリズムは、鍵ペアを生成するためにCAおよびSSLサーバで幅広く使用されています。各CAおよびSSLサーバには、独自のRSA鍵ペアがあります。SSLサーバは、証明書を登録するときに、公開鍵をCAに送信します。SSLサーバはSSLセッションを設定するときに、証明書を使用してクライアントに対してIDを証明します。
SSLサーバはセキュアなストレージ内に秘密鍵を保管し、CAには公開鍵のみを送信します。CAは秘密鍵を使用して、サーバの公開鍵およびサーバに関するその他の識別情報が格納された証明書に署名します。
各CAは秘密鍵の機密を保持し、秘密鍵を使用して、下位のCAおよびSSLサーバ用の証明書に署名します。CAには、公開鍵が格納された証明書が保管されます。
CAは1つまたは複数のレベルからなる階層を形成します。最上位レベルのCAをルートCAと呼びます。下位レベルのCAを中間CAまたは下位CAと呼びます。ルートCAには自己署名証明書が格納されます。ルートCAはすぐ下のレベルの下位CA用証明書に署名し、その下位CAはさらに1つ下のレベルのCA用証明書に署名します。以下、同様です。最下位レベルのCAは、SSLサーバ用証明書に署名します。
(注) SSLサービス モジュールは、最大8レベルのCAをサポートします(1つのルートCAと最大7つの下位CA)。「3層のCA登録の例」に、3レベル(3層)の登録例を示します。
これらの証明書は、最下位レベルのサーバ証明書および最上位レベルのルートCA自己署名証明書とともに、チェーンを形成します。各署名を作成するには、発行元CAの秘密鍵を使用して、証明書本体のハッシュ ダイジェストを暗号化します。証明書本体の末尾にシグニチャが付加されて、完全な証明書となります。
SSLセッションの設定時に、SSLサーバは証明書チェーンをクライアントに送信します。クライアントは、レベルが1つ上の証明書から公開鍵を取得して、証明書本体に付加されたシグニチャを復号化することにより、チェーン上方に向かって各証明書のシグニチャを確認します。復号結果と証明書本体のハッシュ ダイジェストが比較されます。チェーン内のいずれかのCA証明書が、クライアントの独自データベースに保存された信頼できるCA証明書の1つと一致した場合、確認は終了します。
チェーン内の最上位レベルのCA証明書に到達しても、信頼できる自己署名証明書と一致しなかった場合、クライアントはセッションを終了するか、またはユーザに対して、証明書を閲覧して信頼できるかどうかを判別するように要求します。
SSLクライアントは、サーバを認証したあと、サーバ証明書内の公開鍵を使用して機密事項を暗号化し、サーバに送信します。SSLサーバは秘密鍵を使用して、機密事項を復号化します。クライアントおよびサーバは両方で、交換された機密事項および2つの乱数を使用することにより、SSLセッション全体でデータの暗号化、復号化、および整合性チェックを行うために必要な鍵情報を生成します。
(注) SSLサービス モジュールは、汎用鍵のみをサポートします。
汎用鍵を生成すると、RSA鍵ペアが1対のみ生成されます。名前付きの鍵ペアを使用すると、複数のRSA鍵ペアを所有することができ、Cisco IOSソフトウェアはID証明書ごとに異なる鍵ペアを管理できます。鍵ペアに名前を指定することを推奨します。
(注) 生成された鍵ペアは、システム メモリ(RAM)に保存されます。停電が起こるか、またはモジュールをリセットすると、これらの鍵ペアは失われます。実行コンフィギュレーションを保存し、モジュールのNVRAM内にあるプライベート コンフィギュレーション ファイルに鍵ペアを保存するには、copy system:running-config nvram:startup-configコマンドを入力する必要があります。
RSA鍵ペアを生成する手順は、次のとおりです。
|
|
ssl-proxy(config)#
crypto key generate rsa
general-keys
label
key-label [
exportable ] [
modulus
size ]
|
RSA鍵ペアを生成します。 |
(注) RSA鍵を生成するとき、鍵の係数長をビット単位で入力するように要求されます。SSLサービス モジュールは、512、768、1,024、1,536、および2,048ビットの係数長をサポートします。512または768も指定できますが、1,024以上の係数長を推奨します。係数が長いほど生成や使用に時間がかかりますが、セキュリティが強化されます。
次に、汎用のRSA鍵を生成する例を示します。
ssl-proxy(config)# crypto key generate rsa general-keys label kp1 exportable
The name for the keys will be: kp1
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]: 1024
Generating RSA keys.... [OK].
(注) 鍵ペアを生成したあとに、自己署名証明書を生成してSSLサービスをテストすることができます。テスト用の自己署名証明書を生成するには、「自己署名証明書の生成」を参照してください。
トラストポイントの宣言
証明書ごとに、モジュールで使用されるトラストポイントを1つ宣言する必要があります。
モジュールが使用するトラストポイントを宣言し、トラストポイントの特性を指定するには、グローバル コンフィギュレーション モードから始めて次の作業を行います。
|
|
|
ステップ 1 |
ssl-proxy(config)#
crypto ca trustpoint
trustpoint-label
|
モジュールで使用するトラストポイントを宣言します。このコマンドをイネーブルにすると、ca-trustpointコンフィギュレーション モードになります。 |
ステップ 2 |
ssl-proxy(ca-trustpoint)#
rsakeypair
key-label
|
証明書に関連付ける鍵ペアを指定します。 |
ステップ 3 |
ssl-proxy(ca-trustpoint)#
enrollment [
mode ra ] [
retry [
period
minutes ] [
count
count ]]
url
url
|
CAの登録パラメータを指定します。 |
ステップ 4 |
ssl-proxy(ca-trustpoint)#
ip-address
server_ip_addr
|
(任意)この証明書を使用するプロキシ サービスのIPアドレスを指定します。 |
ステップ 5 |
ssl-proxy(ca-trustpoint)#
crl [
best-effort |
optional |
query
host: [
port ]]
|
(任意)このトラストポイントに関連付けられた証明書を検証する際に、トラストポイントがCRLを検索する方法を指定します。 CRLについては、「CRL」を参照してください。 |
ステップ 6 |
ssl-proxy(ca-trustpoint)#
subject-name
line
|
(任意)プロキシ サービスのホスト名を設定します。 |
ステップ 7 |
ssl-proxy(ca-trustpoint)#
password
password
|
(任意)チャレンジ パスワードを設定します。 |
ステップ 8 |
ssl-proxy(ca-trustpoint)#
exit
|
ca-trustpointコンフィギュレーション モードを終了します。 |
次に、トラストポイントPROXY1を宣言して、接続を確認する例を示します。
ssl-proxy(config)# crypto ca trustpoint PROXY1
ssl-proxy(ca-trustpoint)# rsakeypair PROXY1
ssl-proxy(ca-trustpoint)# enrollment url http://exampleCA.cisco.com
ssl-proxy(ca-trustpoint)# ip-address 10.0.0.1
ssl-proxy(ca-trustpoint)# password password
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# serial-number
ssl-proxy(ca-trustpoint)# subject-name C=US; ST=California; L=San Jose; O=Cisco; OU=Lab;
ssl-proxy(ca-trustpoint)# end
ssl-proxy# ping example.cisco.com
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.0.0.1, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
CA証明書の取得
トラストポイントごとに、CAの公開鍵が格納された証明書を取得する必要があります。複数のトラストポイントで同じCAを使用することができます。
(注) CAに問い合わせて、証明書の正しいフィンガープリントを取得し、コンソールに表示されるフィンガープリントを検証します。
CAの公開鍵が格納された証明書を取得するには、グローバル コンフィギュレーション モードで次の作業を行います。
|
|
ssl-proxy(config)#
crypto ca authenticate
trustpoint-label
|
CAの公開鍵が格納された証明書を取得します。トラストポイントを宣言するときに入力したものと同じ trustpoint_label を入力します。 |
次に、CA証明書を取得する例を示します。
ssl-proxy(config)# crypto ca authenticate PROXY1
Certificate has the following attributes:
Fingerprint: A8D09689 74FB6587 02BFE0DC 2200B38A
% Do you accept this certificate? [yes/no]: y
Trustpoint CA certificate accepted.
証明書の要求
トラストポイントごとに、CAから署名付き証明書を取得する必要があります。
CAから署名付き証明書を要求するには、グローバル コンフィギュレーション モードで次の作業を行います。
|
|
ssl-proxy(config)#
crypto ca enroll
trustpoint-label
|
トラストポイント用の証明書を要求します。 |
(注) crypto ca enrollコマンドを入力してから、証明書を受け取るまでの間にモジュールまたはスイッチを再起動した場合は、このコマンドを再入力して、CA管理者に通知する必要があります。
次に、証明書を要求する例を示します。
ssl-proxy(config)# crypto ca enroll PROXY1
% Start certificate enrollment..
% The subject name in the certificate will be: C=US; ST=California; L=San Jose; O=Cisco; OU=Lab; CN=host1.cisco.com
% The subject name in the certificate will be: host.cisco.com
% The serial number in the certificate will be: 00000000
% The IP address in the certificate is 10.0.0.1
% Certificate request sent to Certificate Authority
% The certificate request fingerprint will be displayed.
% The 'show crypto ca certificate' command will also show the fingerprint.
Fingerprint: 470DE382 65D8156B 0F84C2AF 4538B913
トラストポイントを設定したあとに、証明書およびトラストポイントの情報を確認する場合は、「証明書およびトラストポイントの確認」を参照してください。
3層のCA登録の例
SSLサービス モジュールは、最大8レベルのCAをサポートします(1つのルートCAと最大7つの下位CA)。
次に、3レベルのCAを設定する例を示します。
鍵の生成
ssl-proxy(onfig)# crypto key generate rsa general-keys label key1 exportable
The name for the keys will be:key1
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]:1024
% Generating 1024 bit RSA keys ...[OK]
トラストポイントの定義
ssl-proxy(config)# crypto ca trustpoint 3tier-root
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.1
ssl-proxy(ca-trustpoint)#
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca trustpoint 3tier-sub1
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.2
ssl-proxy(ca-trustpoint)#
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca trustpoint tp-proxy1
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.3
ssl-proxy(ca-trustpoint)# serial-number
ssl-proxy(ca-trustpoint)# password cisco
ssl-proxy(ca-trustpoint)# subject CN=ste.cisco.com
ssl-proxy(ca-trustpoint)# rsakeypair key1
ssl-proxy(ca-trustpoint)# show
enrollment url tftp://10.1.1.3
subject-name CN=ste.cisco.com
ssl-proxy(ca-trustpoint)# exit
3つのCAの認証(1つのルートCAと2つの下位CA)
ssl-proxy(config)# crypto ca authenticate 3tier-root
Certificate has the following attributes:
Fingerprint:84E470A2 38176CB1 AA0476B9 C0B4F478
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
ssl-proxy(config)# crypto ca authenticate 3tier-sub1
Certificate has the following attributes:
Fingerprint:FE89FB0D BF8450D7 9934C926 6C66708D
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
ssl-proxy(config)# crypto ca authenticate tp-proxy1
Certificate has the following attributes:
Fingerprint:6E53911B E29AE44C ACE773E7 26A098C3
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
3番めのレベルのCAによる登録
ssl-proxy(config)# crypto ca enroll tp-proxy1
% Start certificate enrollment ..
% The fully-qualified domain name in the certificate will be:ste.
% The subject name in the certificate will be:ste.
% The serial number in the certificate will be:B0FFF0C2
% Include an IP address in the subject name? [no]:
Request certificate from CA? [yes/no]:yes
% Certificate request sent to Certificate Authority
% The certificate request fingerprint will be displayed.
% The 'show crypto ca certificate' command will also show the fingerprint.
ssl-proxy(config)# Fingerprint: 74390E57 26F89436 6FC52ABE 24E23CD9
*Apr 18 05:10:20.963:%CRYPTO-6-CERTRET:Certificate received from Certificate Authority
手動証明書登録
手動証明書登録(TFTPおよびカット&ペースト)機能を使用すると、証明書要求を生成し、ルータの証明書と同様にCA証明書も受け入れることができます。これらの手順は、TFTPサーバまたは手動のカット&ペースト操作で行われます。TFTPまたは手動のカット&ペースト登録を使用しなければならない状況は、次のとおりです。
•
ご使用のCAが、SCEPをサポートしていない場合(要求および証明書の送受信に通常使用される方法)
•
ルータとCA間のネットワーク接続が不可能な場合(Cisco IOSソフトウェアを実行しているルータが証明書を入手する方法)
次のURLに従って、手動証明書登録(TFTPおよびカット&ペースト)機能を設定してください。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t13/ftmancrt.htm
(注) CRLサーバが到達不能であるかまたはCRLダウンロード パスが存在しないために、CRLをダウンロードできない場合、証明書をインポートできない可能性があります。インポート プロセスにリンクしているすべてのトラストポイントで、CRLをダウンロードできることを確認する必要があります。CRLパスが存在しないか、またはCRLサーバが到達不能な場合は、インポート プロセスにリンクするすべてのトラストポイントで crl optionalコマンドを入力する必要があります。show crypto ca certificates コマンドを入力して、すべての証明書に関する情報を表示し、この表示から関連するトラストポイントのリストを取得します。これらすべてのトラストポイントに、crl optionalコマンドを入力します。
たとえば3層のCA階層(ルートCA、下位CA1、および下位CA2)で、下位CA1の証明書をインポートする場合、ルートCAに関連するすべてのトラストポイントに crl optionalコマンドを入力します。同様に、下位CA2証明書をインポートする場合は、ルートCAおよび下位CA1に関連するすべてのトラストポイントにcrl optionalコマンドを入力します。
証明書を正常にインポートしてから、トラストポイントで元のCRLオプションを回復させることができます。
例1:TFTPを使用する証明書登録の設定(1層のCA)
1.
トラストポイントを設定します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# crypto ca trustpoint tftp_example
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.2/win2k
ssl-proxy(ca-trustpoint)# rsakeypair pair3
ssl-proxy(ca-trustpoint)# exit
2.
トラストポイント用の証明書を要求します。
ssl-proxy(config)# crypto ca enroll tftp_example
% Start certificate enrollment ..
% The fully-qualified domain name in the certificate will be: ssl-proxy.cisco.com
% The subject name in the certificate will be: ssl-proxy.cisco.com
% Include the router serial number in the subject name? [yes/no]: yes
% The serial number in the certificate will be: 00000000
% Include an IP address in the subject name? [no]:
Send Certificate Request to tftp server? [yes/no]: yes
% Certificate request sent to TFTP Server
% The certificate request fingerprint will be displayed.
% The 'show crypto ca certificate' command will also show the fingerprint.
ssl-proxy(config)# Fingerprint: D012D925 96F4B5C9 661FEC1E 207786B7
3.
CAの公開鍵が格納された証明書を取得します。
ssl-proxy(config)# crypto ca auth tftp_example
Loading win2k.ca from 10.1.1.2 (via Ethernet0/0.168): !
Certificate has the following attributes:
Fingerprint: 2732ED87 965F8FEB F89788D4 914B877D
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
4.
サーバ証明書をインポートします。
ssl-proxy(config)# crypto ca import tftp_example cert
% The fully-qualified domain name in the certificate will be: ssl-proxy.cisco.com
Retrieve Certificate from tftp server? [yes/no]: yes
% Request to retrieve Certificate queued
Loading win2k.crt from 10.1.1.2 (via Ethernet0/0.168): !
*Apr 15 12:02:33.535: %CRYPTO-6-CERTRET: Certificate received from Certificate Authority
例2:カット&ペーストを使用する証明書登録の設定(1層のCA)
1.
RSA鍵ペアを生成します。
ssl-proxy(config)# crypto key generate rsa general-keys label CSR-key exportable
The name for the keys will be:CSR-key
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]:1024
% Generating 1024 bit RSA keys ...[OK]
2.
トラストポイントを設定します。
ssl-proxy(config)# crypto ca trustpoint CSR-TP
ssl-proxy(ca-trustpoint)# rsakeypair CSR-key
ssl-proxy(ca-trustpoint)# serial
ssl-proxy(ca-trustpoint)# subject-name CN=abc, OU=hss, O=cisco
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# exit
3.
トラストポイント用の証明書を要求します。
ssl-proxy(config)# crypto ca enroll CSR-TP
% Start certificate enrollment ..
% The subject name in the certificate will be:CN=abc, OU=hss, O=cisco
% The fully-qualified domain name in the certificate will be:ssl-proxy.cisco.com
% The subject name in the certificate will be:ssl-proxy.cisco.com
% The serial number in the certificate will be:B0FFF22E
% Include an IP address in the subject name? [no]:no
Display Certificate Request to terminal? [yes/no]:yes
Certificate Request follows:
MIIBwjCCASsCAQAwYTEOMAwGA1UEChMFY2lzY28xDDAKBgNVBAsTA2hzczEMMAoG
A1UEAxMDYWJjMTMwDwYDVQQFEwhCMEZGRjIyRTAgBgkqhkiG9w0BCQIWE3NzbC1w
cm94eS5jaXNjby5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALt7O6tt
30lBVVK1qAE/agsuzIaa15YZft3bDb9t3pPncKh0ivBTgVKpJiLPWGZPjdbtejxQ
tYSF77R1pmhK0WSKPuu7fJPYr/Cbo80OUzkRAgMBAAGgITAfBgkqhkiG9w0BCQ4x
EjAQMA4GA1UdDwEB/wQEAwIFoDANBgkqhkiG9w0BAQQFAAOBgQC2GIX06/hihXHA
DA5sOpxgLsO1rMP8PF4bZDdlpWLVBSOrp4S1L7hH9P2NY9rgZAJhDTRfGGm179JY
GOtUuCyPYPkpb0S5VGTUrHvvUWekleKq2d91kfgbkRmJmHBaB2Ev5DNBcV11SIMX
RULG7oUafU6sxnDWqbMseToF4WrLPg==
---End - This line not part of the certificate request---
Redisplay enrollment request? [yes/no]:no
4.
CA証明書をインポートします。
ssl-proxy(config)# crypto ca authenticate CSR-TP
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIICxzCCAjCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBSMQswCQYDVQQGEwJBVTET
MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMQswCQYDVQQDEwJjYTAeFw0wMzA2MjYyMjM4MDlaFw0wODEyMTYyMjM4
MDlaMFIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQK
ExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAMTAmNhMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQCcG9ObqOLmf0cASkF48jz8X7ZQxT1H68OQKNC3
ks95vkGbOAa/1/R4ACQ3s9iPkcGQVqi4Dv8/iNG/1mQo8HBwtR9VgG0l8IGBbuiZ
dlarYnQHUz6Bm/HzE1RXVOY/VmyPOVevYy8/cYhwx/xOE9BYQOyP15Chi8nhIS5F
+WWoHQIDAQABo4GsMIGpMB0GA1UdDgQWBBS4Y+/lSXKDrw5N5m/tgCzu/W81PDB6
BgNVHSMEczBxgBS4Y+/lSXKDrw5N5m/tgCzu/W81PKFWpFQwUjELMAkGA1UEBhMC
QVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdp
dHMgUHR5IEx0ZDELMAkGA1UEAxMCY2GCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG
9w0BAQQFAAOBgQB/rPdLFVuycbaJQucdFQG7kl/XBNI7aY3IL3Lkeumt/nXD+eCn
RpYE5WWY8X1Aizqnj4bqFdqPqYdD7Lg8viwqm2tQmU6zCsdaKhL1J7FCWbfs2+Z5
oNV2Vsqx0Ftnf8en/+HtyS2AdXHreThfgkXz3euXD0ISMFVKRy81o4EdzA==
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:B8B35B00 095573D0 D3B8FA03 B6CA8934
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
5.
サーバ証明書をインポートします(サーバ証明書は、手順4でインポートする証明書のCAによって発行されます)。
ssl-proxy(config)# crypto ca import CSR-TP certificate
% The fully-qualified domain name in the certificate will be:ssl-proxy.cisco.com
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIB7TCCAVYCAQQwDQYJKoZIhvcNAQEEBQAwUjELMAkGA1UEBhMCQVUxEzARBgNV
BAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
ZDELMAkGA1UEAxMCY2EwHhcNMDMxMTIwMDAxMzE2WhcNMDQxMTE5MDAxMzE2WjAs
MQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMQwwCgYDVQQDEwNhYmMwgZ8w
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALt7O6tt30lBVVK1qAE/agsuzIaa15YZ
ft3bDb9t3pPncKh0ivBTgVKpJiLPWGZPjdbtejxQksuSY589V+GMDrO9B4Sxn+5N
p2bQmd745NvI4gorNRvXcdjmE+/SzE+bBSBcKAwNtYSF77R1pmhK0WSKPuu7fJPY
r/Cbo80OUzkRAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAjqJ9378P6Gz69Ykplw06
Powp+2rbe2iFBrE1xE09BL6G6vzcBQgb5W4uwqxe7SIHrHsS0/7Be3zeJnlOseWx
/KVj7I02iPgrwUa9DLavwrTyaa0KtTpti/i5nIwTNh5xkp2bBJQikD4TEK7HAvXf
-----END CERTIFICATE-----
% Router Certificate successfully imported
例3:TFTPを使用する証明書登録の設定(3層のCA)
1.
RSA鍵ペアを生成します。
ssl-proxy(config)# crypto key generate rsa general-keys label test-3tier exportable
The name for the keys will be:test-3tier
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]:1024
% Generating 1024 bit RSA keys ...[OK]
2.
トラストポイントを設定します。
ssl-proxy(config)# crypto ca trustpoint test-3tier
ssl-proxy(ca-trustpoint)# serial-number
ssl-proxy(ca-trustpoint)# password cisco
ssl-proxy(ca-trustpoint)# subject CN=test-3tier, OU=hss, O=Cisco
ssl-proxy(ca-trustpoint)# rsakeypair test-3tier
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.3/test-3tier
ssl-proxy(ca-trustpoint)# exit
3.
Certificate Signing Request(CSR)を生成して、TFTPサーバに送信します。
ssl-proxy(config)# crypto ca enroll test-3tier
% Start certificate enrollment ..
% The subject name in the certificate will be:CN=test-3tier, OU=hss, O=Cisco
% The fully-qualified domain name in the certificate will be:ssl-proxy.cisco.com
% The subject name in the certificate will be:ssl-proxy.cisco.com
% The serial number in the certificate will be:B0FFF22E
% Include an IP address in the subject name? [no]:
Send Certificate Request to tftp server? [yes/no]:yes
% Certificate request sent to TFTP Server
% The certificate request fingerprint will be displayed.
% The 'show crypto ca certificate' command will also show the fingerprint.
ssl-proxy(config)# Fingerprint: 19B07392 319B2ACF F8FABE5C 52798971
4.
CSRを使用して、3層のCAからSSL証明書をオフラインで取得します。
5.
3つのCAを認証します(1つのルートCAと2つの下位CA)
ssl-proxy(config)# crypto ca trustpoint test-1tier
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.3/test-1tier
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate test-1tier
Loading test-1tier.ca from 10.1.1.3 (via Ethernet0/0.172):!
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
ssl-proxy(config)# crypto ca trustpoint test-2tier
ssl-proxy(ca-trustpoint)# enrollment url tftp://10.1.1.3/test-2tier
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate test-2tier
Loading test-2tier.ca from 10.1.1.3 (via Ethernet0/0.172):!
Certificate has the following attributes:
Fingerprint:50A986F6 B471B82D E11B71FE 436A9BE6
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
ssl-proxy(config)# crypto ca authenticate test-3tier
Loading test-3tier.ca from 10.1.1.3 (via Ethernet0/0.172):!
Certificate has the following attributes:
Fingerprint:2F2E44AC 609644FA 5B4B6B26 FDBFE569
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
6.
サーバ証明書をインポートします。
ssl-proxy(config)# crypto ca import test-3tier certificate
% The fully-qualified domain name in the certificate will be:ssl-proxy.cisco.com
Retrieve Certificate from tftp server? [yes/no]:yes
% Request to retrieve Certificate queued
Loading test-3tier.crt from 10.1.1.3 (via Ethernet0/0.172):!
*Nov 25 21:52:36.299:%CRYPTO-6-CERTRET:Certificate received from Certificate Authority
例4:カット&ペーストを使用する証明書登録の設定(3層のCA)
1.
RSA鍵ペアを生成します。
ssl-proxy(config)# crypto key generate rsa general-keys label tp-proxy1 exportable
The name for the keys will be:tp-proxy1
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]:1024
% Generating 1024 bit RSA keys ...[OK]
2.
トラストポイントを設定します。
ssl-proxy(config)# crypto ca trustpoint tp-proxy1
ssl-proxy(ca-trustpoint)# enrollment ter
ssl-proxy(ca-trustpoint)# rsakeypair tp-proxy1
ssl-proxy(ca-trustpoint)# serial
ssl-proxy(ca-trustpoint)# subject-name CN=test
ssl-proxy(ca-trustpoint)# exit
3.
トラストポイント用の証明書を要求します。
ssl-proxy(config)# crypto ca enroll tp-proxy1
% Start certificate enrollment ..
% The subject name in the certificate will be:CN=test
% The fully-qualified domain name in the certificate will be:ssl-proxy.
% The subject name in the certificate will be:ssl-proxy.
% The serial number in the certificate will be:B0FFF14D
% Include an IP address in the subject name? [no]:no
Display Certificate Request to terminal? [yes/no]:yes
Certificate Request follows:
MIIBnDCCAQUCAQAwOzENMAsGA1UEAxMEdGVzdDEqMA8GA1UEBRMIQjBGRkYxNEQw
FwYJKoZIhvcNAQkCFgpzc2wtcHJveHkuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDFx1ol9IXoAx4fyUhaXH6s4p5t9soIZ1gvLtVX6Fp6zfuX47os5TGJH/IX
zV9B4e5Kv+wlMD0AvTh+/tvyAP3TMpCdpHYosd2VaTIgExpHf4M5Ruh8IebVKV25
rraIpNiS0PvPLFcrw4UfJVNpsc2XBxBhpT+FS9y67LqlhfSN4wIDAQABoCEwHwYJ
KoZIhvcNAQkOMRIwEDAOBgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEA
kOIjd1KNJdKLMf33YELRd3MW/ujJIuiT1J8RYVbw1eE8JQf68TTdKiYqzQcoMgsp
ez3vSPxXFZ/c6naXdVyrTikTX3GZ1mu+UOvV6/Jaf5QcXa9tAi3fgyguV7jQMPjk
Qj2GrwhXjcqZGOMBh6Kq6s5UPsIDgrL036I42B6B3EQ=
---End - This line not part of the certificate request---
Redisplay enrollment request? [yes/no]:no
4.
3番めのレベルのCAにより署名された手順3の証明書要求を取得します。
5.
すべてのCAを定義し、インポートします(1つのルートCAと2つの下位CA)。
a.
ルートCAおよび下位CA1の2つのトラストポイントを定義します。
(注) 下位CA2証明書をインポートするには、tp-proxy1を使用します。
ssl-proxy(config)# crypto ca trustpoint 3tier-root
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# crl op
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca trustpoint 3tier-sub1
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# crl op
ssl-proxy(ca-trustpoint)# exit
b.
ルートCA証明書をインポートします。
ssl-proxy(config)# crypto ca authenticate 3tier-root
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
c.
下位CA1証明書をインポートします。
ssl-proxy(config)# crypto ca authenticate 3tier-sub1
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIETzCCA/mgAwIBAgIKGj0cBwAAAAAADjANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMzIyMDQyMVoXDTA0MTExMzIyMTQyMVow
dTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNVBAcTCHNh
biBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYDVQQDExdz
aW1wc29uLWRldnRlc3Qtc3ViMS1jYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDc
vV48nC2uukoSyGJ/GymCIEXZzMSzpbkYS7eWPaZYyiJDhCIKuUsMgFDRNfMQmUSA
rcWmPizFZc9PFumDa03vAgMBAAGjggJpMIICZTAQBgkrBgEEAYI3FQEEAwIBADAd
BgNVHQ4EFgQUWaaNN2U14BaBoU9mY+ncuHpP920wCwYDVR0PBAQDAgHGMA8GA1Ud
EwEB/wQFMAMBAf8wga4GA1UdIwSBpjCBo4AUJgYtQFMo130SBSiceehK9seDRrGh
eaR3MHUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpjYWxpZm9ybmlhMREwDwYDVQQH
EwhzYW4gam9zZTEOMAwGA1UEChMFY2lzY28xDDAKBgNVBAsTA2hzczEgMB4GA1UE
AxMXc2ltcHNvbi1kZXZ0ZXN0LXJvb3QtQ0GCEGnVMc1P4ve4Q5mUWCdWwXAwgZcG
A1UdHwSBjzCBjDBDoEGgP4Y9aHR0cDovL2Npc2NvLWw4ajZvaHBuci9DZXJ0RW5y
b2xsL3NpbXBzb24tZGV2dGVzdC1yb290LUNBLmNybDBFoEOgQYY/ZmlsZTovL1xc
Y2lzY28tbDhqNm9ocG5yXENlcnRFbnJvbGxcc2ltcHNvbi1kZXZ0ZXN0LXJvb3Qt
Q0EuY3JsMIHIBggrBgEFBQcBAQSBuzCBuDBZBggrBgEFBQcwAoZNaHR0cDovL2Np
c2NvLWw4ajZvaHBuci9DZXJ0RW5yb2xsL2Npc2NvLWw4ajZvaHBucl9zaW1wc29u
LWRldnRlc3Qtcm9vdC1DQS5jcnQwWwYIKwYBBQUHMAKGT2ZpbGU6Ly9cXGNpc2Nv
LWw4ajZvaHBuclxDZXJ0RW5yb2xsXGNpc2NvLWw4ajZvaHBucl9zaW1wc29uLWRl
dnRlc3Qtcm9vdC1DQS5jcnQwDQYJKoZIhvcNAQEFBQADQQA6kAV3Jx/BOr2hlSp9
ER36ZkDJNIW93gNt2MkpcA07RmcrHln6q5RJ9WbvTxFnONdgpsag1EcOwn97XErH
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:50A986F6 B471B82D E11B71FE 436A9BE6
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
% Certificate successfully imported
d.
下位CA2証明書をインポートします。
ssl-proxy(config)# crypto ca authenticate tp-proxy1
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIESTCCA/OgAwIBAgIKHyiFxAAAAAAABjANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1zdWIxLWNhMB4XDTAzMTExMzIyMjI1MloXDTA0MTExMzIyMTQyMVow
dTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNVBAcTCHNh
biBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYDVQQDExdz
aW1wc29uLWRldnRlc3Qtc3ViMi1jYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC7
ChZc0NYLBHf1sr/3Z4y6w5WoeioIpCOCSydhnbd5wnwuethoyStVt9lr6i61jWKl
d68Z8EoTg71daiV/WR/HAgMBAAGjggJjMIICXzAQBgkrBgEEAYI3FQEEAwIBADAd
BgNVHQ4EFgQU6FmJopqqzpbFMj6TaB2/wjlWlqEwCwYDVR0PBAQDAgHGMA8GA1Ud
EwEB/wQFMAMBAf8wgagGA1UdIwSBoDCBnYAUWaaNN2U14BaBoU9mY+ncuHpP922h
eaR3MHUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpjYWxpZm9ybmlhMREwDwYDVQQH
EwhzYW4gam9zZTEOMAwGA1UEChMFY2lzY28xDDAKBgNVBAsTA2hzczEgMB4GA1UE
AxMXc2ltcHNvbi1kZXZ0ZXN0LXJvb3QtQ0GCCho9HAcAAAAAAA4wgZcGA1UdHwSB
jzCBjDBDoEGgP4Y9aHR0cDovL2Npc2NvLWcyNXVhNm80ZS9DZXJ0RW5yb2xsL3Np
bXBzb24tZGV2dGVzdC1zdWIxLWNhLmNybDBFoEOgQYY/ZmlsZTovL1xcY2lzY28t
ZzI1dWE2bzRlXENlcnRFbnJvbGxcc2ltcHNvbi1kZXZ0ZXN0LXN1YjEtY2EuY3Js
MIHIBggrBgEFBQcBAQSBuzCBuDBZBggrBgEFBQcwAoZNaHR0cDovL2Npc2NvLWcy
NXVhNm80ZS9DZXJ0RW5yb2xsL2Npc2NvLWcyNXVhNm80ZV9zaW1wc29uLWRldnRl
c3Qtc3ViMS1jYS5jcnQwWwYIKwYBBQUHMAKGT2ZpbGU6Ly9cXGNpc2NvLWcyNXVh
Nm80ZVxDZXJ0RW5yb2xsXGNpc2NvLWcyNXVhNm80ZV9zaW1wc29uLWRldnRlc3Qt
c3ViMS1jYS5jcnQwDQYJKoZIhvcNAQEFBQADQQCieB8rvVCqVF2cFw9/v51jGn7L
Q6pUGT3bMRbOrgQKytTz/Yx09156nYZHrvVuLzmzz5CriI2saVx+q1Tarwil
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:2F2E44AC 609644FA 5B4B6B26 FDBFE569
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
% Certificate successfully imported
e.
サーバ証明書をインポートします。
ssl-proxy(config)# crypto ca import tp-proxy1 certificate
% The fully-qualified domain name in the certificate will be:ssl-proxy.
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIENTCCA9+gAwIBAgIKLmibDwAAAAAACDANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1zdWIyLWNhMB4XDTAzMTExOTIzNDUzNVoXDTA0MTExMzIyMTQyMVow
PTERMA8GA1UEBRMIQjBGRkYxNEQxGTAXBgkqhkiG9w0BCQITCnNzbC1wcm94eS4x
DTALBgNVBAMTBHRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMXHWiX0
hegDHh/JSFpcfqzinm32yghnWC8u1VfoWnrN+5fjuizlMYkf8hfNX0Hh7kq/7CUw
Af8EBAMCBaAwHQYDVR0OBBYEFCXlzcYHyo1PNbfubnivi8d2VO22MIGoBgNVHSME
gaAwgZ2AFOhZiaKaqs6WxTI+k2gdv8I5VpahoXmkdzB1MQswCQYDVQQGEwJVUzET
MBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2UxDjAMBgNVBAoT
BWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24tZGV2dGVzdC1z
dWIxLWNhggofKIXEAAAAAAAGMIGXBgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9j
aXNjby1vam14Y25jenYvQ2VydEVucm9sbC9zaW1wc29uLWRldnRlc3Qtc3ViMi1j
YS5jcmwwRaBDoEGGP2ZpbGU6Ly9cXGNpc2NvLW9qbXhjbmN6dlxDZXJ0RW5yb2xs
XHNpbXBzb24tZGV2dGVzdC1zdWIyLWNhLmNybDCByAYIKwYBBQUHAQEEgbswgbgw
WQYIKwYBBQUHMAKGTWh0dHA6Ly9jaXNjby1vam14Y25jenYvQ2VydEVucm9sbC9j
aXNjby1vam14Y25jenZfc2ltcHNvbi1kZXZ0ZXN0LXN1YjItY2EuY3J0MFsGCCsG
AQUFBzAChk9maWxlOi8vXFxjaXNjby1vam14Y25jenZcQ2VydEVucm9sbFxjaXNj
by1vam14Y25jenZfc2ltcHNvbi1kZXZ0ZXN0LXN1YjItY2EuY3J0MA0GCSqGSIb3
DQEBBQUAA0EAtbxmUBOxZ/hcrCc3hY7pa6q/LmLonXSL8cjAbV2I7A5QGYaNi5k9
8FlEz1WOxW0J2C3/YsvIf4dYpsQWdKRJbQ==
-----END CERTIFICATE-----
% Router Certificate successfully imported
鍵ペアおよび証明書のインポートとエクスポート
PKCS12ファイル フォーマットまたはPrivacy-Enhanced Mail(PEM)ファイル フォーマットのいずれかを使用して、鍵ペアと証明書をインポート/エクスポートすることができます。
鍵ペアと証明書をインポート/エクスポートするには、次のいずれかの章を参照してください。
•
「PKCS12ファイルのインポートとエクスポート」
•
「PEMファイルのインポートとエクスポート」
(注) モジュールのSSLソフトウェアには、テスト用PKCS12ファイル(test/testssl.p12)が組み込まれています。このファイルをNVRAMにインストールして、テストや概念の検証に使用することができます。PKCS12ファイルをインストールしたあとに、このファイルをトラストポイントにインポートして、テスト用に設定されたプロキシ サービスに割り当てることができます。テスト用PKCS12ファイルのインストールについては、「組み込みテスト証明書のインポート」を参照してください。
(注) CRLサーバが到達不能であるかまたはCRLダウンロード パスが存在しないために、CRLをダウンロードできない場合、証明書をインポートできない可能性があります。インポート プロセスにリンクしているすべてのトラストポイントで、CRLをダウンロードできることを確認する必要があります。CRLパスが存在しないか、またはCRLサーバが到達不能な場合は、インポート プロセスにリンクするすべてのトラストポイントに crl optionalコマンドを入力する必要があります。show crypto ca certificates コマンドを入力して、すべての証明書に関する情報を表示し、この表示から関連するトラストポイントのリストを取得します。これらすべてのトラストポイントにcrl optionalコマンドを入力します。
たとえば3層のCA階層(ルートCA、下位CA1、および下位CA2)で、下位CA1の証明書をインポートする場合、ルートCAに関連するすべてのトラストポイントに crl optionalコマンドを入力します。同様に、下位CA2証明書をインポートする場合は、ルートCAおよび下位CA1に関連するすべてのトラストポイントにcrl optionalコマンドを入力します。
証明書を正常にインポートしてから、トラストポイントで元のCRLオプションを回復させることができます。
PKCS12ファイルのインポートとエクスポート
外部PKIシステムを使用してPKCS12ファイルを生成し、生成されたファイルをモジュールにインポートすることができます。
(注) PKCS12ファイルを作成する場合は、サーバ証明書からルート証明書までの証明書チェーン全体、および公開鍵と秘密鍵をファイルに含める必要があります。また、モジュールからPKCS12ファイルを生成して、それをエクスポートすることもできます。
(注) インポートされた鍵ペアは、エクスポートできません。
(注) SSHを使用している場合は、PKCS12ファイルをインポートまたはエクスポートするときに、SCP(セキュアなファイル転送)を使用することを推奨します。SCPはホストを認証して、転送セッションを暗号化します。
PKCS12ファイルをインポートまたはエクスポートする手順は、次のとおりです。
|
|
ssl-proxy(config)# crypto ca { import | export } trustpoint_label pkcs12 { scp: | ftp: | nvram: | rcp: | tftp: } [ pkcs12_filename ] pass_phrase |
PKCS12ファイルをインポートまたはエクスポートします。
(注) PKCS12ファイルをインポートする前にトラストポイントを設定する必要はありません。トラストポイントが未設定の場合は、PKCS12ファイルから鍵および証明書をインポートすると、トラストポイントが自動作成されます。
|
次に、SCPを使用してPKCS12ファイルをインポートする例を示します。
ssl-proxy(config)# crypto ca import TP2 pkcs12 scp: sky is blue
Address or name of remote host []? 10.1.1.1
Source username [ssl-proxy]? admin-1
Source filename [TP2]? /users/admin-1/pkcs12/TP2.p12
Sending file modes:C0644 4379 TP2.p12
*Aug 22 12:30:00.531:%CRYPTO-6-PKCS12IMPORT_SUCCESS:PKCS #12 Successfully Imported.
次に、SCPを使用してPKCS12ファイルをエクスポートする例を示します。
ssl-proxy(config)# crypto ca export TP1 pkcs12 scp: sky is blue
Address or name of remote host []? 10.1.1.1
Destination username [ssl-proxy]? admin-1
Destination filename [TP1]? TP1.p12
Writing TP1.p12 Writing pkcs12 file to scp://admin-1@10.1.1.1/TP1.p12
CRYPTO_PKI:Exported PKCS12 file successfully.
次に、FTP(ファイル転送プロトコル)を使用してPKCS12ファイルをインポートする例を示します。
ssl-proxy(config)# crypto ca import TP2 pkcs12 ftp: sky is blue
Address or name of remote host []? 10.1.1.1
Source filename [TP2]? /admin-1/pkcs12/PK-1024
Loading /admin-1/pkcs12/PK-1024 !
次に、FTPを使用してPKCS12ファイルをエクスポートする例を示します。
ssl-proxy(config)# crypto ca export TP1 pkcs12 ftp: sky is blue
Address or name of remote host []? 10.1.1.1
Destination filename [TP1]? /admin-1/pkcs12/PK-1024
Writing pkcs12 file to ftp://10.1.1.1//admin-1/pkcs12/PK-1024
Writing /admin-1/pkcs12/PK-1024 !!
CRYPTO_PKI:Exported PKCS12 file successfully.
PKCS12ファイルをインポートしたあとに、証明書およびトラストポイントの情報を確認する場合は、「証明書およびトラストポイントの確認」を参照してください。
PEMファイルのインポートとエクスポート
(注) crypto ca import pemコマンドを使用すると、秘密鍵(.prv)、サーバ証明書(.crt)、および発行者のCA証明書(.ca)のみをインポートします。証明書チェーンに複数のCAレベルがある場合は、このコマンドが認証用に発行される前に、ルートCA証明書および下位CA証明書をインポートする必要があります。ルートCA証明書および下位CA証明書をインポートするには、カット&ペーストまたはTFTPを使用します。
(注) インポートされた鍵ペアは、エクスポートできません。
(注) SSHを使用している場合は、PEMファイルをインポートまたはエクスポートするときに、SCP(セキュアなファイル転送)を使用することを推奨します。SCPはホストを認証して、転送セッションを暗号化します。
PEMファイルをインポートまたはエクスポートするには、次の手順のいずれかを実行します。
|
|
ssl-proxy(config)# crypto ca import trustpoint_label pem [ exportable ] { terminal | url { scp: | ftp: | nvram: | rcp: | tftp: } | usage-keys } pass_phrase , |
PEMファイルをインポートします。
(注) PEMファイルをインポートする前にトラストポイントを設定する必要はありません。トラストポイントが未設定の場合は、PEMファイルから鍵および証明書をインポートすると、トラストポイントが自動作成されます。
|
ssl-proxy(config)# crypto ca export trustpoint_label pem { terminal | url { scp: | ftp: | nvram: | rcp: | tftp: } [ des | 3des ] pass_phrase1 , 2 |
PEMファイルをエクスポートします。
(注) 鍵、サーバ証明書、およびサーバ証明書の発行者CAのみがエクスポートされます。上位レベルのCAはすべて、TFTPのカット&ペーストを使用してエクスポートされる必要があります。
|
次に、TFTPを使用してPEMファイルをインポートする例を示します。
(注) TP5.ca、TP5.prv、およびTP5.crtファイルは、サーバ上に格納されている必要があります。
ssl-proxy(config)# crypto ca import TP5 pem url tftp://10.1.1.1/TP5 password
% Importing CA certificate...
Address or name of remote host [10.1.1.1]?
Destination filename [TP5.ca]?
Reading file from tftp://10.1.1.1/TP5.ca
Loading TP5.ca from 10.1.1.1 (via Ethernet0/0.168): !
% Importing private key PEM file...
Address or name of remote host [10.1.1.1]?
Destination filename [TP5.prv]?
Reading file from tftp://10.1.1.1/TP5.prv
Loading TP5.prv from 10.1.1.1 (via Ethernet0/0.168): !
% Importing certificate PEM file...
Address or name of remote host [10.1.1.1]?
Destination filename [TP5.crt]?
Reading file from tftp://10.1.1.1/TP5.crt
Loading TP5.crt from 10.1.1.1 (via Ethernet0/0.168): !
% PEM files import succeeded.
*Apr 11 15:11:29.901: %SYS-5-CONFIG_I: Configured from console by console
次に、TFTPを使用してPEMファイルをエクスポートする例を示します。
ssl-proxy(config)# crypto ca export TP5 pem url tftp://10.1.1.1/tp99 3des password
% Exporting CA certificate...
Address or name of remote host [10.1.1.1]?
Destination filename [tp99.ca]?
% File 'tp99.ca' already exists.
% Do you really want to overwrite it? [yes/no]: yes
!Writing file to tftp://10.1.1.1/tp99.ca!
Usage: General Purpose Key
% Exporting private key...
Address or name of remote host [10.1.1.1]?
Destination filename [tp99.prv]?
% File 'tp99.prv' already exists.
% Do you really want to overwrite it? [yes/no]: yes
!Writing file to tftp://10.1.1.1/tp99.prv!
% Exporting router certificate...
Address or name of remote host [10.1.1.1]?
Destination filename [tp99.crt]?
% File 'tp99.crt' already exists.
% Do you really want to overwrite it? [yes/no]: yes
!Writing file to tftp://10.1.1.1/tp99.crt!
PEMファイルをインポートしたあとに、証明書およびトラストポイントの情報を確認する場合は、「証明書およびトラストポイントの確認」を参照してください。
3レベルのCA用PEMファイルのインポート例
ここでは、オフライン登録のカット&ペースト オプションを使用して、ルートCA証明書(Tier 1)および中間CA証明書(Tier 2)を取得します。中間CA証明書(Tier 3)、秘密鍵、およびルータ証明書は、PEMファイルをインポートすることで取得されます。
1.
カット&ペーストを使用して、ルートCA-Tier 1証明書を取得します。
ssl-proxy(config)# crypto ca trustpoint 3tier-root
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate 3tier-root
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
2.
カット&ペーストを使用して、下位CA1証明書を取得します。
ssl-proxy(config)# crypto ca trustpoint 3tier-subca1
ssl-proxy(ca-trustpoint)# enroll terminal
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate 3tier-subca1
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIETzCCA/mgAwIBAgIKGj0cBwAAAAAADjANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMzIyMDQyMVoXDTA0MTExMzIyMTQyMVow
dTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNVBAcTCHNh
biBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYDVQQDExdz
aW1wc29uLWRldnRlc3Qtc3ViMS1jYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDc
vV48nC2uukoSyGJ/GymCIEXZzMSzpbkYS7eWPaZYyiJDhCIKuUsMgFDRNfMQmUSA
rcWmPizFZc9PFumDa03vAgMBAAGjggJpMIICZTAQBgkrBgEEAYI3FQEEAwIBADAd
BgNVHQ4EFgQUWaaNN2U14BaBoU9mY+ncuHpP920wCwYDVR0PBAQDAgHGMA8GA1Ud
EwEB/wQFMAMBAf8wga4GA1UdIwSBpjCBo4AUJgYtQFMo130SBSiceehK9seDRrGh
eaR3MHUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpjYWxpZm9ybmlhMREwDwYDVQQH
EwhzYW4gam9zZTEOMAwGA1UEChMFY2lzY28xDDAKBgNVBAsTA2hzczEgMB4GA1UE
AxMXc2ltcHNvbi1kZXZ0ZXN0LXJvb3QtQ0GCEGnVMc1P4ve4Q5mUWCdWwXAwgZcG
A1UdHwSBjzCBjDBDoEGgP4Y9aHR0cDovL2Npc2NvLWw4ajZvaHBuci9DZXJ0RW5y
b2xsL3NpbXBzb24tZGV2dGVzdC1yb290LUNBLmNybDBFoEOgQYY/ZmlsZTovL1xc
Y2lzY28tbDhqNm9ocG5yXENlcnRFbnJvbGxcc2ltcHNvbi1kZXZ0ZXN0LXJvb3Qt
Q0EuY3JsMIHIBggrBgEFBQcBAQSBuzCBuDBZBggrBgEFBQcwAoZNaHR0cDovL2Np
c2NvLWw4ajZvaHBuci9DZXJ0RW5yb2xsL2Npc2NvLWw4ajZvaHBucl9zaW1wc29u
LWRldnRlc3Qtcm9vdC1DQS5jcnQwWwYIKwYBBQUHMAKGT2ZpbGU6Ly9cXGNpc2Nv
LWw4ajZvaHBuclxDZXJ0RW5yb2xsXGNpc2NvLWw4ajZvaHBucl9zaW1wc29uLWRl
dnRlc3Qtcm9vdC1DQS5jcnQwDQYJKoZIhvcNAQEFBQADQQA6kAV3Jx/BOr2hlSp9
ER36ZkDJNIW93gNt2MkpcA07RmcrHln6q5RJ9WbvTxFnONdgpsag1EcOwn97XErH
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:50A986F6 B471B82D E11B71FE 436A9BE6
Certificate validated - Signed by existing trustpoint CA certificate.
Trustpoint CA certificate accepted.
% Certificate successfully imported
3.
下位CA2証明書、RSA鍵ペア、およびルータ証明書をインポートします。ルータ証明書には、下位CA2による署名が必要です。
ssl-proxy(config)# crypto ca import tp-proxy1 pem terminal cisco
% Enter PEM-formatted CA certificate.
% End with a blank line or "quit" on a line by itself.
-----BEGIN CERTIFICATE-----
MIIESTCCA/OgAwIBAgIKHyiFxAAAAAAABjANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1zdWIxLWNhMB4XDTAzMTExMzIyMjI1MloXDTA0MTExMzIyMTQyMVow
dTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNVBAcTCHNh
biBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYDVQQDExdz
aW1wc29uLWRldnRlc3Qtc3ViMi1jYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC7
ChZc0NYLBHf1sr/3Z4y6w5WoeioIpCOCSydhnbd5wnwuethoyStVt9lr6i61jWKl
d68Z8EoTg71daiV/WR/HAgMBAAGjggJjMIICXzAQBgkrBgEEAYI3FQEEAwIBADAd
BgNVHQ4EFgQU6FmJopqqzpbFMj6TaB2/wjlWlqEwCwYDVR0PBAQDAgHGMA8GA1Ud
EwEB/wQFMAMBAf8wgagGA1UdIwSBoDCBnYAUWaaNN2U14BaBoU9mY+ncuHpP922h
eaR3MHUxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpjYWxpZm9ybmlhMREwDwYDVQQH
EwhzYW4gam9zZTEOMAwGA1UEChMFY2lzY28xDDAKBgNVBAsTA2hzczEgMB4GA1UE
AxMXc2ltcHNvbi1kZXZ0ZXN0LXJvb3QtQ0GCCho9HAcAAAAAAA4wgZcGA1UdHwSB
jzCBjDBDoEGgP4Y9aHR0cDovL2Npc2NvLWcyNXVhNm80ZS9DZXJ0RW5yb2xsL3Np
bXBzb24tZGV2dGVzdC1zdWIxLWNhLmNybDBFoEOgQYY/ZmlsZTovL1xcY2lzY28t
ZzI1dWE2bzRlXENlcnRFbnJvbGxcc2ltcHNvbi1kZXZ0ZXN0LXN1YjEtY2EuY3Js
MIHIBggrBgEFBQcBAQSBuzCBuDBZBggrBgEFBQcwAoZNaHR0cDovL2Npc2NvLWcy
NXVhNm80ZS9DZXJ0RW5yb2xsL2Npc2NvLWcyNXVhNm80ZV9zaW1wc29uLWRldnRl
c3Qtc3ViMS1jYS5jcnQwWwYIKwYBBQUHMAKGT2ZpbGU6Ly9cXGNpc2NvLWcyNXVh
Nm80ZVxDZXJ0RW5yb2xsXGNpc2NvLWcyNXVhNm80ZV9zaW1wc29uLWRldnRlc3Qt
c3ViMS1jYS5jcnQwDQYJKoZIhvcNAQEFBQADQQCieB8rvVCqVF2cFw9/v51jGn7L
Q6pUGT3bMRbOrgQKytTz/Yx09156nYZHrvVuLzmzz5CriI2saVx+q1Tarwil
-----END CERTIFICATE-----
% Enter PEM-formatted encrypted private key.
% End with "quit" on a line by itself.
-----BEGIN RSA PRIVATE KEY-----
DEK-Info:DES-EDE3-CBC,F0D3269840071CF8
gQb9JMplIE5AEdhumLuBFWT53k+L/EGLhFfQn/roPlEOiIGEB6y3DeYNN/xZSiy3
JOHN0kh8Wjw3pshrdNVcoQj2X7BPI+YOipok40WOk5J/+dnRLwMjv+rl0tr+LcCk
nBdR8zIOkOJObULLUOXFBM7oB3Dsk4Y3FBv8EAR3AdQiZjevau4FIyQn+JfVZy+J
wctmvZnX0c0fevPsgID4dCPkeY6+I0DkxMyRiuyn+wIrJw1xVA2VIOrRJojBNlRu
6/APef8JwpfnNcgpcLYt/4Q+3Yjl9EfRLjgiL6eSRki/6K5lrV3eKbwOTyjvXq5h
G0Q6dtNEoIvOg1Vad0CXeL+TxJ4ySq4E63OxIHkclDBsusGoUGLoZ+OtaxApAZ+5
WbKqR+ND1LlPmS8/ZL9LMPhUh9eOqZJjJTe6NbxY7jeNHjAmpP7/WpB2f2kV/LZg
n2AV4GALBZtqXtreGiayZzXpEA5J00lbzRZWf9JHA1diz/unW00/GH9LvCqA9O15
YJGCrRMI9US7MWm8kIkiJqNgLtbPad5cOaieQe+Kncgcm18Hc7pfhDwXGG4RS40x
TSV/kIR4Gi7h8Lu71wZKTaWYHBPTUyTIpNsFUEdvItHXOSBw2LWNWzdYgpGoMT/t
ryuu0lAC9YdBalAxY0DaqqpuXKzxfiw5QDbqZWVq3qAxXfLAtTgu/gFCuFQvbBGl
87H1C+nOQUq2nkpMpHZLsl3V0w/2yqg+q6rUydANFF+a5vRaLgX/PGms92ZkZUdP
Z5qeKJmoURSlMYxDuhQDl93RYxXJxOYIYrCrI/QaBpIH6QvUH60wWA==
-----END RSA PRIVATE KEY-----
% Enter PEM-formatted certificate.
% End with a blank line or "quit" on a line by itself.
-----BEGIN CERTIFICATE-----
MIIEXTCCBAegAwIBAgIKTJOcWgAAAAAACTANBgkqhkiG9w0BAQUFADB1MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2FuIGpvc2Ux
DjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3NpbXBzb24t
ZGV2dGVzdC1zdWIyLWNhMB4XDTAzMTEyNTIwMjExMFoXDTA0MTExMzIyMTQyMVow
PjERMA8GA1UEBRMIQjBGRkYyMkUxKTAnBgkqhkiG9w0BCQITGnNpbXBzb24tNjUw
OS1zdGUuY2lzY28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkhRKm
38hSF7l0WXlYm8ixs2Hz/yjNw7tchtRPIp0qCTJKW00gzZpp8dqaNi3s2GVVWb+t
Cgsol0MZLIkyoj/9vT9MC7Zo3LOxYy9kD+6M9peUWMT4JLSD4Exzxsd87JpP1bo0
o8WhYjvMor/bL30sW8ly2RH2vppEMn9eLEN0vwIDAQABo4ICajCCAmYwCwYDVR0P
BAQDAgWgMB0GA1UdDgQWBBSx6uQ2sARlcjzhBSiMu7xeu1n6AjCBqAYDVR0jBIGg
MIGdgBToWYmimqrOlsUyPpNoHb/COVaWoaF5pHcwdTELMAkGA1UEBhMCVVMxEzAR
BgNVBAgTCmNhbGlmb3JuaWExETAPBgNVBAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVj
aXNjbzEMMAoGA1UECxMDaHNzMSAwHgYDVQQDExdzaW1wc29uLWRldnRlc3Qtc3Vi
MS1jYYIKHyiFxAAAAAAABjAoBgNVHREBAf8EHjAcghpzaW1wc29uLTY1MDktc3Rl
LmNpc2NvLmNvbTCBlwYDVR0fBIGPMIGMMEOgQaA/hj1odHRwOi8vY2lzY28tb2pt
eGNuY3p2L0NlcnRFbnJvbGwvc2ltcHNvbi1kZXZ0ZXN0LXN1YjItY2EuY3JsMEWg
Q6BBhj9maWxlOi8vXFxjaXNjby1vam14Y25jenZcQ2VydEVucm9sbFxzaW1wc29u
LWRldnRlc3Qtc3ViMi1jYS5jcmwwgcgGCCsGAQUFBwEBBIG7MIG4MFkGCCsGAQUF
BzAChk1odHRwOi8vY2lzY28tb2pteGNuY3p2L0NlcnRFbnJvbGwvY2lzY28tb2pt
eGNuY3p2X3NpbXBzb24tZGV2dGVzdC1zdWIyLWNhLmNydDBbBggrBgEFBQcwAoZP
ZmlsZTovL1xcY2lzY28tb2pteGNuY3p2XENlcnRFbnJvbGxcY2lzY28tb2pteGNu
Y3p2X3NpbXBzb24tZGV2dGVzdC1zdWIyLWNhLmNydDANBgkqhkiG9w0BAQUFAANB
ABFh7XeLwvfBtjAR+e5OaUH5KTGJDbeJppOmMFXnFakpgWop9Qg4cHRCQq7V0pAW
-----END CERTIFICATE-----
% PEM files import succeeded.
*Dec 4 18:11:49.850:%SYS-5-CONFIG_I:Configured from console by console
4.
証明書情報を表示します(任意)。
ssl-proxy# show crypto ca certificates tp-proxy1
Certificate Serial Number:04A0147B00000000010E
Certificate Usage:General Purpose
OID.1.2.840.113549.1.9.2 = ssl-proxy.
http://sample.cisco.com/sub3ca.crl
start date:18:04:09 UTC Jan 23 2003
end date:21:05:17 UTC Dec 12 2003
renew date:00:00:00 UTC Apr 1 2003
Associated Trustpoints:tp-proxy1
Certificate Serial Number:6D1E6B0F000000000007
Certificate Usage:Signature
http://sample.cisco.com/subtest.crl
start date:22:22:52 UTC Mar 28 2003
end date:21:05:17 UTC Dec 12 2003
Associated Trustpoints:tp-proxy1
ssl-proxy# show crypto ca certificates 3tier-subca1
Certificate Serial Number:29A47DEF0000000004E9
Certificate Usage:Signature
CN = 6ebf9b3e-9a6d-4400-893c-dd85dcfe911b
http://sample.cisco.com/6ebf9b3e-9a6d-4400-893c-dd85dcfe911b.crl
start date:20:55:17 UTC Dec 12 2002
end date:21:05:17 UTC Dec 12 2003
Associated Trustpoints:3tier-sub1
ssl-proxy# show crypto ca certificates 3tier-root
Certificate Serial Number:7FD5B209B5C2448C47F77F140625D265
Certificate Usage:Signature
CN = 6ebf9b3e-9a6d-4400-893c-dd85dcfe911b
CN = 6ebf9b3e-9a6d-4400-893c-dd85dcfe911b
http://sample.cisco.com/6ebf9b3e-9a6d-4400-893c-dd85dcfe911b.crl
start date:00:05:32 UTC Jun 13 2002
end date:00:11:58 UTC Jun 13 2004
Associated Trustpoints:3tier-root
証明書およびトラストポイントの確認
証明書およびトラストポイント(信頼点)に関する情報を確認するには、EXECモードで次の作業を行います。
|
|
|
ステップ 1 |
ssl-proxy(ca-trustpoint)#
show crypto ca certificates [
trustpoint_label ]
|
指定されたトラストポイントに関連付けられた証明書の情報を表示するか、またはご使用の証明書、CA証明書、およびRegistration Authority(RA;登録局)証明書の情報をすべて表示します。 |
ステップ 2 |
ssl-proxy(ca-trustpoint)#
show crypto ca trustpoints [
trustpoint_label ]
|
すべてのトラストポイントの情報、または指定されたトラストポイントの情報を表示します。 |
鍵および証明書の共有
SSLサービス モジュールを使用すると、複数の証明書で同じ鍵ペアを共有できます。ただし、1つの鍵ペアが損なわれた場合に、すべての証明書を取り消して置き換える必要があるため、この方法は推奨しません。
各プロキシ サービスの追加や削除は随時行われるため、各証明書の有効期限もそれぞれ異なります。一部のCAは、証明書を書き換えるときに鍵ペアを更新するように要求します。複数の証明書で1つの鍵ペアを共有している場合は、これらの複数の証明書を同時に書き換える必要があります。一般に、証明書ごとに鍵ペアが異なる場合は、証明書の管理が容易です。
SSLモジュールには、複数のプロキシ サービス間、および複数のSSLサービス モジュール間で証明書を共有する場合の制限がありません。複数のプロキシ サービスに、同じトラストポイントを割り当てることができます。
ビジネス上の観点から、CAに制限が設けられる場合があります(たとえば、同じ証明書を使用できるサーバ ファーム内のサーバ数が制限されます)。証明書の共有に関して、契約またはライセンス上の合意がある場合もあります。ビジネス契約については、CAまたは法律関係者にお問い合わせください。
実際には、一部のWebブラウザは、サーバ証明書の件名と、URLに含まれるホスト名またはIPアドレスを比較します。件名がホスト名またはIPアドレスと一致しない場合は、証明書を確認して受け入れるようにユーザに要求するダイアログ ボックスが表示されます。この手順を省略するには、ホスト名またはIPアドレスに基づく証明書の共有を制限します。
設定の保存
注意 RSA鍵ペアはNVRAMにのみ保存されます。
copy system:running-config
file_system
:コマンドに他のファイル システムを指定した場合、RSA鍵は設定と一緒に保存
されません。
設定を変更した場合は、必ず作業内容を保存してください。
設定をNVRAMに保存する手順は、次のとおりです。
|
|
ssl-proxy#
copy [
/erase ]
system:running-config nvram:startup-config
|
設定、鍵ペア、および証明書をNVRAMに保存します。鍵ペアがプライベート コンフィギュレーション ファイルに保存され、各証明書がNVRAM内にバイナリ ファイルとして保存されます。モジュールは、起動時に、証明書を取得するかまたは自動登録するようにCAに問い合わせる必要がなくなります。
(注) セキュリティ上の理由から、/eraseオプションを入力してパブリックおよびプライベート コンフィギュレーション ファイルを消去してから、NVRAMを更新することを推奨します。/eraseオプションを入力しないと、古いプライベート コンフィギュレーション ファイルの鍵ペアがNVRAMに残ることがあります。
注意
/eraseオプションを入力すると、実行中の設定がNVRAMに保存される前に、NVRAM内の現在のバッファおよびバックアップのバッファが削除されます。バッファは削除されたあとにもかかわらず、実行中の設定が保存される前に停電が起こるか、または再起動をすると、両方の設定が失われることになります。
|
(注) NVRAMに保存されているファイル数が多い場合は、この作業に最長で2分かかることがあります。
NVRAMへの設定の自動バックアップ機能では、最後に保存された設定を自動的にバックアップします。現在の書き込み過程でエラーが発生した場合は、前回の設定が自動的に回復されます。
コンフィギュレーションのサイズが大きすぎる場合
サイズが大きすぎるコンフィギュレーション(257以上のプロキシ サービス、および357以上の証明書)を保存すると、NVRAM内の内容が破壊されることがあります。
NVRAMに保存する前に、必ず実行コンフィギュレーションにコピーしてください。実行コンフィギュレーション ファイルをリモート サーバに保管すると、各証明書がファイル内に16進ダンプとして保存されます。実行コンフィギュレーション ファイルを実行コンフィギュレーションにコピーしてから、NVRAMに保存すると、証明書が再度保存されますが、今度はバイナリ ファイルとして保存されます。ただし、実行コンフィギュレーション ファイルをリモート サーバからスタートアップ コンフィギュレーションに直接コピーした場合は、16進ダンプとして保存された証明書も保存されて、同じ証明書のコピーが2つ(16進ダンプ形式とバイナリ ファイル形式)存在することになります。証明書は2つも必要ではありませんし、またリモート ファイルのサイズが大きい場合はNVRAMの内容の一部が上書きされて、内容が破壊される危険性があります。
保存済みコンフィギュレーションの確認
保存済みコンフィギュレーションを確認する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy#
show startup-config
|
スタートアップ コンフィギュレーションを表示します。 |
ステップ 2 |
ssl-proxy#
directory nvram:
|
NVRAM内のファイルの名前およびサイズを表示します。 |
(注) プロキシ サービスおよび証明書の数が上限(それぞれ256、356)まで設定されている場合は、出力を表示するまで最長で7分かかります。
保存済みコンフィギュレーションの削除
保存済みコンフィギュレーションを削除する手順は、次のとおりです。
|
|
|
スタートアップ コンフィギュレーションおよび鍵ペアを削除します。 |
ssl-proxy#
erase /all nvram:
|
NVRAM内のスタートアップ コンフィギュレーション、鍵ペア、証明書、およびその他のすべてのファイルを削除します。 |
(注) NVRAMに保存されているファイル数が多い場合は、この作業に最長で2分かかることがあります。
注意 保存された設定を削除する場合は、NVRAM内の自動バックアップ設定も削除されます。
鍵および証明書のバックアップ
鍵および証明書をNVRAMに保存するプロセスを中断する事象(停電など)が発生した場合は、保存中の鍵および証明書が失われることがあります。公開鍵および証明書はCAから取得できますが、秘密鍵は回復できません。
セキュアなサーバが使用可能な場合は、各トラストポイントをPKCS12ファイルにエクスポートして、鍵ペアおよび対応する証明書チェーンをバックアップすることができます。その後PKCS12ファイルをインポートして、鍵および証明書を回復できます。
セキュリティに関する注意事項
鍵および証明書をバックアップする場合は、次の注意事項に従ってください。
•
PKCS12ごとに、容易に推測できないパス フレーズを選択して、厳重に保護する必要があります。PKCS12ファイルをクリア テキスト形式で保存しないでください。
•
バックアップ サーバはセキュアでなければなりません。権限を持つユーザにのみ、バックアップ サーバへのアクセスを許可します。
•
PKCS12ファイル(そこにパス フレーズを入力します)のインポートまたはエクスポート時には、モジュール コンソールに直接接続するか、SSHセッションを使用します。
•
ファイル転送にはSCPを使用します。
モジュールからのRSA鍵の削除
注意 SSH鍵を削除すると、モジュール上でSSHがディセーブルになります。SSH鍵を削除した場合は、新しい鍵を生成してください。
「SSHの設定」を参照してください。
場合によっては、モジュールのRSA鍵を削除しなければならないことがあります。たとえば、RSA鍵が何らかの理由で損なわれて使用できない場合は、鍵を削除する必要があります。
モジュールからRSA鍵をすべて削除するには、グローバル コンフィギュレーション モードで次の作業を行います。
|
|
ssl-proxy(config)#
crypto key zeroize rsa [
key-label ]
|
すべてのRSA鍵ペア、または指定された鍵ペアを削除します。
注意 鍵を削除すると、その鍵に関連付けられたすべての証明書も削除されます。
|
モジュールのRSA鍵を削除したあとに、次に示す2つの作業を行います。
•
モジュールの証明書をCAで無効にするように、CA管理者に要求します。 crypto ca enroll コマンドを使用して、最初に証明書を取得したときにモジュールに作成したチャレンジ パスワードを指定する必要があります。
•
コンフィギュレーションからトラストポイントを手動で削除します(コンフィギュレーションからの証明書の削除を参照)。
鍵および証明書の表示
鍵および証明書を表示するには、EXECモードで次のコマンドを入力します。
|
|
ssl-proxy#
show crypto key mypubkey rsa
|
モジュールのRSA公開鍵を表示します。 |
ssl-proxy#
show crypto ca certificates [
trustpoint_label ]
|
証明書、CA証明書、およびあらゆるRA証明書の情報を表示します。 |
ssl-proxy#
show running-config [
brief ]
|
公開鍵および証明書チェーンを表示します。 brief オプションを指定すると、各証明書の16進ダンプが表示されません。 |
ssl-proxy#
show ssl-proxy service
proxy-name
|
指定されたプロキシ サービスに使用される鍵ペアおよび証明書チェーンのシリアル番号を表示します。
(注) proxy-name値は大文字/小文字の区別があります。
|
コンフィギュレーションからの証明書の削除
モジュールには、独自の証明書およびCAの証明書が保存されます。モジュールに保存された証明書は削除できます。
モジュールのコンフィギュレーションから証明書を削除するには、グローバル コンフィギュレーション モードで次の作業を行います。
|
|
ssl-proxy(config)#
no crypto ca trustpoint
trustpoint-label
|
証明書を削除します。 |
プロキシ サービスへの証明書の割り当て
certificate rsa general-purpose trustpoint trustpoint_label サブコマンドを入力すると( ssl-proxy service proxy_service コマンドの下に入力)、指定されたプロキシ サービスに証明書が割り当てられます。プロキシ サービスごとに、 certificate rsa general-purpose trustpoint サブコマンドを何度でも入力できます。
トラストポイントラベルを変更した場合は、移行期間の間、プロキシ サービスが一時的に停止します。接続を閉じるか削除しない限り、既存の接続は古い証明書を使用し続けます。新しい接続では新しいトラストポイントの証明書が使用され、サービスが再び使用可能になります。
ただし、新しいトラストポイントに証明書がない場合は、サービスの動作ステータスはダウンのままです。新しい接続は、新しい証明書が使用可能になるまで確立されません。 no certificate rsa
general-purpose trustpoint サブコマンドを入力して証明書を削除した場合でも、接続を閉じるかまたは削除しない限り、既存の接続はこの証明書を使用し続けます。不用になった証明書も、すべての接続を閉じるかまたは削除しない限り、プロキシ サービスから削除されません。
次に、プロキシ サービスにトラストポイントを割り当てる例を示します。
ssl-proxy# configure terminal
ssl-proxy(config)# ssl-proxy service s2
ssl-proxy(config-ssl-proxy)# virtual ip 10.1.1.2 p tcp p 443
ssl-proxy(config-ssl-proxy)# server ip 20.0.0.3 p tcp p 80
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# certficate rsa general trustpoint tp-1
ssl-proxy(config-ssl-proxy)# end
ssl-proxy# show ssl-proxy service s2
Service id:6, bound_service_id:262
Virtual IP:10.1.1.2, port:443
Server IP:20.0.0.3, port:80
rsa-general-purpose certificate trustpoint:tp-1
Certificate chain in use for new connections:
Serial Number:3C2CD2330001000000DB
Serial Number:313AD6510D25ABAE4626E96305511AC4
Certificate chain complete
次に、プロキシ サービスのトラストポイントを変更する例を示します。
(注) 接続を閉じない限り、既存の接続は古い証明書を使用し続けます。サービスの動作ステータスはアップからダウンに変わり、再度アップになります。新しい接続は、新しい証明書を使用します。
ssl-proxy# configure terminal
ssl-proxy(config)# ssl-proxy service s2
ssl-proxy(config-ssl-proxy)# certificate rsa general trustpoint tp-2
ssl-proxy(config-ssl-proxy)# end
ssl-proxy# show ssl-proxy service s2
Service id:6, bound_service_id:262
Virtual IP:10.1.1.2, port:443
Server IP:20.0.0.3, port:80
rsa-general-purpose certificate trustpoint:tp-2
Certificate chain in use for new connections:
Serial Number:70FCBFEC000100000D65
Serial Number:313AD6510D25ABAE4626E96305511AC4
Obsolete certificate chain in use for old connections:
Serial Number:3C2CD2330001000000DB
Serial Number:313AD6510D25ABAE4626E96305511AC4
Certificate chain complete
証明書の更新
証明書を更新する場合、一部のCAでは新しい鍵ペアを生成する必要がありますが、その他のCAでは期限切れ証明書の鍵ペアを使用することができます。SSLサービス モジュールは、この両方の場合に対応しています。
通常、SSLサーバ証明書の期限は1~2年です。証明書を適宜に書き換えることにより、サービスが突然停止する事態を避けることができます。
次の例では、プロキシ サービスs2はトラストポイントt2に割り当てられています。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# ssl-proxy service s2
ssl-proxy(config-ssl-proxy)# certificate rsa general-purpose trustpoint t2
ssl-proxy(config-ssl-proxy)# end
ssl-proxy# show ssl-proxy service s2
Service id:0, bound_service_id:256
Virtual IP:10.1.1.1, port:443
Server IP:10.1.1.10, port:80
rsa-general-purpose certificate trustpoint:t2
Certificate chain in use for new connections:
Serial Number:1DFBB1FD000100000D48
Serial Number:313AD6510D25ABAE4626E96305511AC4
Certificate chain complete
次の例では、トラストポイントt2の鍵ペアを更新して、古い証明書をCisco IOSデータベースから削除します。プロキシ サービスs2に対する証明書の書き換えが自動的に開始します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# crypto key generate rsa general-key k2 exportable
% You already have RSA keys defined named k2.
% Do you really want to replace them? [yes/no]:yes
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
How many bits in the modulus [512]:1024
% Generating 1024 bit RSA keys ...[OK]
ssl-proxy# show ssl-proxy service s2
Service id:0, bound_service_id:256
Virtual IP:10.1.1.1, port:443
Server IP:10.1.1.10, port:80
rsa-general-purpose certificate trustpoint:t2
Certificate chain in graceful rollover, being renewed:
Serial Number:1DFBB1FD000100000D48
Serial Number:313AD6510D25ABAE4626E96305511AC4
Server certificate in graceful rollover
次の例では、トラストポイントt2が再登録されるまで、既存および新規の接続は古い証明書を使用します。トラストポイントt2を再登録したあと、新しい接続は新しい証明書を使用します。既存の接続は接続が終了するまで、古い証明書を使用し続けます。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# crypto ca enroll t2
% Start certificate enrollment ..
% The subject name in the certificate will be:CN=host1.cisco.com
% The subject name in the certificate will be:ssl-proxy.cisco.com
% The serial number in the certificate will be:00000000
% The IP address in the certificate is 10.1.1.1
% Certificate request sent to Certificate Authority
% The certificate request fingerprint will be displayed.
% The 'show crypto ca certificate' command will also show the fingerprint.
Fingerprint: 6518C579 A0498063 C5795057 A6170 075
*Sep 24 15:19:34.339:%CRYPTO-6-CERTRET:Certificate received from Certificate Authority
ssl-proxy# show ssl-proxy service s2
Service id:0, bound_service_id:256
Virtual IP:10.1.1.1, port:443
Server IP:10.1.1.10, port:80
rsa-general-purpose certificate trustpoint:t2
Certificate chain in use for new connections:
Serial Number:2475A2FC000100000D4D
Serial Number:313AD6510D25ABAE4626E96305511AC4
Obsolete certificate chain in use for old connections:
Serial Number:1DFBB1FD000100000D48
Serial Number:313AD6510D25ABAE4626E96305511AC4
Certificate chain complete
次の例では、既存の接続をすべて閉じたあとに、不用になった証明書を削除します。
ssl-proxy# show ssl-proxy service s2
Service id:0, bound_service_id:256
Virtual IP:10.1.1.1, port:443
Server IP:10.1.1.10, port:80
rsa-general-purpose certificate trustpoint:t2
Certificate chain in use for new connections:
Serial Number:2475A2FC000100000D4D
Serial Number:313AD6510D25ABAE4626E96305511AC4
Certificate chain complete
証明書の自動更新および自動登録
自動登録を設定する場合、モジュールは、設定のパラメータを使用しているCAからの証明書を自動的に要求します。
指定された比率の有効時間が過ぎた証明書を、自動的に更新するように設定することができます。たとえば、証明書が300日間有効で、 renewal_percent を80と指定する場合、証明書の有効時間の開始から240日過ぎると、証明書は自動的に更新されます。
(注) 自動登録および自動更新の前に、CA証明書をデータベースに格納する必要があります。自動登録を設定する前に、トラストポイントを認証します。また、トラストポイントのSCEP登録URLも設定します。
自動登録および自動更新をイネーブルにして、タイマー情報を表示する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)#
crypto ca trustpoint
trustpoint-label
|
トラストポイントを宣言します。 |
ステップ 2 |
ssl-proxy(ca-trustpoint)#
auto-enroll {renewal_
percent |
regenerate }
|
指定されたトラストポイントの自動更新および自動登録をイネーブルにします。
(注) renewal_percent の有効値は0(1分以内の登録)~100です。
(注) 名前付きの鍵がすでに存在している場合でも、regenerateキーワードを使用すると、証明書の新しい鍵が生成されます。
|
ステップ 3 |
ssl-proxy#
show crypto ca timers
|
各タイマーの期限切れまでの残り時間を表示します。 |
次に、自動登録および自動更新をイネーブルにする例を示します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# crypto ca trustpoint tk21
ssl-proxy(ca-trustpoint)# auto-enroll 90
ssl-proxy(ca-trustpoint)# end
ssl-proxy# show crypto ca timers
|255d 5:28:32.348 RENEW tk21
鍵および証明書の履歴のイネーブル化
ssl-proxy pki history コマンドを入力すると、SSLプロキシ サービスの鍵および証明書の履歴がイネーブルになります。この履歴には、プロキシ サービスの鍵ペアおよび証明書チェーンの追加レコードまたは削除レコードがそれぞれ作成されます。
show ssl-proxy certificate-history コマンドを入力すると、各レコードが表示されます。各レコードにはサービス名、鍵ペアの名前、生成またはインポートの時刻、トラストポイントの名前、証明書の件名と発行者名、シリアル番号、および日付が記録されます。
メモリには最大512のレコードを格納できます。レコードごとに、Syslogメッセージが生成されます。レコード数が上限である512を超えた場合は、古いレコードから順に削除されます。
鍵および証明書の履歴をイネーブルにして、レコードを表示する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)#
ssl-proxy pki history
|
鍵および証明書の履歴をイネーブルにします。 |
ステップ 2 |
ssl-proxy#
show ssl-proxy certificate-history [
service
proxy_service ]
|
すべてのサービスまたは指定されたサービスの鍵および証明書の履歴レコードを表示します。 |
次に、鍵および証明書の履歴をイネーブルにして、指定されたプロキシ サービスのレコードを表示する例を示します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)#ssl-proxy pki history
ssl-proxy# show ssl-proxy certificate-history service s2
Record 1, Timestamp:00:00:22, 17:44:18 UTC Sep 29 2002
Installed Server Certificate, Index 0
Proxy Service:s2, Trust Point:t2
Key Pair Name:k2, Key Usage:RSA General Purpose, Not Exportable
Time of Key Generation:06:29:08 UTC Sep 28 2002
Subject Name:CN = host1.cisco.com, OID.1.2.840.113549.1.9.2 = ssl-proxy.cisco.com,
OID.1.2.840.113549.1.9.8 = 10.1.1.1
Issuer Name:CN = TestCA, OU = Lab, O = Cisco Systems, L = San Jose, ST = CA, C = US,
EA =<16> simpson-pki@cisco.com
Serial Number:3728ADCD000100000D4F
Validity Start Time:15:56:55 UTC Sep 28 2002
End Time:16:06:55 UTC Sep 28 2003
Renew Time:00:00:00 UTC Jan 1 1970
End of Certificate Record
Total number of certificate history records displayed = 1
ピア証明書のキャッシュ
認証済みのサーバ/クライアント(ピア)証明書をキャッシュするように、SSLモジュールを設定することができます。認証済みのピア証明書をキャッシュすることにより、SSLモジュールは同じ証明書を再び認証する必要がなくなるため、時間の節約になります。SSLモジュールは、指定されたタイムアウト インターバル内に同じピア証明書を受信して、確認オプション(signature-onlyまたはall)が一致する場合に、キャッシュされた証明書情報を使用します。
(注) verifying allを指定すると、指定されたタイムアウト インターバル内にCRL検索またはACLフィルタリングの結果が変更される場合があります。これは、SSLモジュールが否定される必要のある証明書を不正に受け取る原因となります。たとえば、SSLモジュールがピア証明書をキャッシュし、その後指定されたタイムアウト内に、この証明書が表示されている更新済みのCRLをダウンロードする場合があります。
SSLモジュールが多量の証明書を何度も受信して、リスクが容認できる環境では、認証済みのピア証明書をキャッシュすることにより、オーバーヘッドを減らすことができます。
たとえば、サイトツーサイトVirtual Private Network(VPN;仮想私設網)環境で、2つのSSLモジュールがフル ハンドシェイクの間に相互の証明書を認証すると、キャッシュが適用されます。signature-onlyの確認および認証済みのピア証明書のキャッシュを組み合わせると、最高のパフォーマンスを得ることができます。
指定されたタイム インターバル内に期限切れになるピア証明書は、キャッシュされません。SSLモジュールは、signature-onlyおよびverify-allオプションに、別々のキャッシュ エントリを使用します。確認オプションの一致は、キャッシュ ヒットの基準の1つです。
同じピア証明書を、異なるプロキシ サーバで異なる時間に受け取ることができ、各プロキシ サーバにはそれぞれ固有のCAプールがあるため、ピア証明書の発行者が現在のプロキシ サービスのCAプールではなく、前回のプロキシ サービスのCAプールにある場合があります。これはキャッシュ ミスとみなされ、ピア証明書は確認されます。
認証済みのピア証明書をキャッシュする手順は、次のとおりです。
|
|
ssl-proxy(config)# ssl-proxy pki cache size size timeout minutes |
証明書のキャッシュ パラメータを設定します。 size のデフォルト値は0(ディセーブル)です。有効範囲は0~5,000エントリです。 minutes のデフォルト値は15分です。有効範囲は1~600分です。 キャッシュを削除するには、キャッシュ サイズまたはタイムアウト値を変更します。 |
証明書期限切れ警告の設定
証明書の期限が切れた場合、または指定された時間内に切れる場合に、警告メッセージをロギングするようにSSLモジュールを設定することができます。証明書期限切れ警告をイネーブルにすると、SSLモジュールは30分ごとに次の期限切れ情報を確認します。
•
すべてのプロキシ サービス
•
プロキシ サービスに関連付けられたCA証明書
•
信頼できるCAプールに割り当てられた、すべてのCAトラストポイント
タイム インターバルは、1~720時間の範囲で指定できます。
(注) SSLモジュールでは、証明書にロギングされていた情報を保管します。0を指定すると警告はディセーブルになり、以前ロギングされたすべての警告メッセージの内部メモリが削除されます。タイム インターバルを1~720時間の範囲で指定すると、ロギング プロセスが再開されます。ログ メッセージは、ロギング開始後すぐには表示されない場合があります。最初のログ メッセージが表示されるまで、最大30分かかる場合があります。
証明書が指定されたインターバル内で期限切れになる場合、またはすでに期限切れになった場合は、SSLモジュールは証明書の警告メッセージを1つロギングします。
さらに、CISCO-SSL-PROXY-MIB証明書期限切れトラップをイネーブルにして、プロキシ サービスの証明書期限切れ警告がロギングされるたびに、トラップを発行することができます。SNMP(簡易ネットワーク管理プロトコル)トラップの設定の詳細については、「SNMPトラップの設定」を参照してください。
証明書期限切れ警告をイネーブルにして、警告のインターバルを設定する手順は、次のとおりです。
|
|
ssl-proxy(config)#
ssl-proxy pki certificate check-expiring interval
interval
|
証明書期限切れ警告をイネーブルにして、警告のインターバルを設定します。 interval のデフォルト値は0(ディセーブル)です。有効範囲は1~720時間です。
(注) 0 を入力すると、警告はディセーブルになり、以前ロギングされたすべての警告メッセージの内部メモリが削除されます。SNMPトラップは送信されません。
|
次に、証明書期限切れ警告をイネーブルにして、警告のインターバルを設定する例を示します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# ssl-proxy pki certificate check-expiring interval 36
*Nov 27 03:44:05.207:%STE-6-PKI_CERT_EXP_WARN_ENABLED:Proxy service certificate expiration
warning has been enabled. Time interval is set to 36 hours.
次に、以前ロギングされたすべての警告メッセージの内部メモリを削除して、ロギング プロセスを再開する例を示します。
ssl-proxy# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
ssl-proxy(config)# ssl-proxy pki certificate check-expiring interval 0
*Nov 27 03:44:15.207:%STE-6-PKI_CERT_EXP_WARN_DISABLED:Checking of certificate expiration has been disabled.
ssl-proxy(config)# ssl-proxy pki certificate check-expiring interval 1
*Nov 27 03:44:16.207:%STE-6-PKI_CERT_EXP_WARN_ENABLED:Proxy service certificate expiration
warning has been enabled. Time interval is set to 36 hours.
次に、まもなく期限切れになるか、またはすでに期限切れになった、プロキシ サービスの証明書に関するSyslogメッセージ例を示します。
Jan 1 00:00:18.971:%STE-4-PKI_PROXY_SERVICE_CERT_EXPIRING:A proxy service certificate is
going to expire or has expired at this time:20:16:26 UTC Sep 5 2004, proxy service:s7,
次に、まもなく期限切れになるか、またはすでに期限切れになった1つまたは複数のプロキシ サービスに関連付けられたCA証明書に関するSyslogメッセージ例を示します。
Jan 1 00:00:18.971:%STE-4-PKI_PROXY_SERVICE_CA_CERT_EXPIRING:A CA certificate is going to
expire or has expired at this time:22:19:38 UTC Mar 4 2004, subject name:CN = ExampleCA,
OU = Example Lab, O = Cisco Systems, L = San Jose, ST = CA, C = US, EA =
example@cisco.com, serial number:313AD6510D25ABAE4626E96305511AC4.
次に、期限切れになるまたはすでに期限切れになった、信頼できるCAプールに割り当てられたCA証明書に関するSyslogメッセージ例を示します。
Jan 1 00:00:18.971:%STE-4-PKI_CA_POOL_CERT_EXPIRING:A CA certificate in a CApool is going
to expire or has expired at this time:22:19:38 UTC Mar 4 2004, CA pool:pool2,
証明書認証の設定
ここでは、クライアント/サーバ認証の設定方法について説明します。
•
「クライアント証明書認証の設定」
•
「サーバ証明書認証」
•
「CRL」
•
「証明書セキュリティのアトリビュートベース アクセス制御」
クライアント/サーバ証明書認証を設定する際は、確認形式を signature-only または all として設定する必要があります。いずれのオプションでも、各証明書が認証される有効開始時刻および有効終了時刻が確認されます。開始時刻がまだであるか、または終了時刻が過ぎている場合は、SSLモジュールが証明書を受け入れません。
verify signature-only コマンドを入力すると、SSLモジュールはピア証明書から次の証明書(常に前回の証明書の発行者)へ以下同様に、次の条件のいずれかが満たされるまで、証明書チェーンを確認します。
•
証明書が信頼されるCAにより発行されるか、または証明書自体が信頼されるCAの証明書に一致して、信頼されるCAがプロキシ サービスに割り当てられたCAプール内にある。この場合、チェーンは許可されるので残りのチェーンを確認する必要がありません。
•
チェーンの最後が到達し、チェーン内の最後の証明書は信頼されるCAにより発行されていない。この場合、チェーンは拒否されます。
verify all コマンドを入力すると、SSLモジュールは証明書チェーンをソートします。この場合、関連性がない証明書または冗長の証明書は無視されます。SSLモジュールは、ソートされるチェーンの最初の証明書が信頼されるCAにより発行されているか、または信頼されるCA証明書に一致するかを判断します。
SSLモジュールが最初の証明書を信頼できない場合、このチェーンは拒否されます。
SSLモジュールが最初の証明書を信頼する場合、チェーン内の各証明書に次の手順が実行されます。
•
各証明書のシグニチャを確認します。
•
証明書が1つまたは複数のトラストポイントに関連付けられている場合、SSLモジュールがこれらのトラストポイントのうちいずれか1つを選択します。SSLモジュールは、このトラストポイントのCRLまたはACLマップの設定に応じて、証明書の失効、およびアトリビュート フィルタリングを実行します。CRLまたはACLのチェックにより証明書が否定される場合、SSLモジュールはこのチェーンを拒否します。
•
証明書がX509バージョン3のCA証明書である場合、SSLモジュールはBasic Constraint(基本制約)拡張領域が存在し、有効であることを確認します。Basic Constraint拡張領域が存在しないかまたは有効でない場合、このチェーンは拒否されます。
シグニチャのみを確認する場合、この確認プロセスではチェーン内の最低証明書数の有効期限およびシグニチャのみがチェックされます。すべてを確認すると、より詳細な照合および受信したすべての証明書の認証を行うことができますが、さらに時間もかかり、CPU時間も使用されます。
CLIコマンドを入力して、CRLをダウンロードおよび更新することにより、リアルタイム遅延を減少させることができます。ただし、CRL検索は低速プロセスです。CRLの詳細については、「CRL」を参照してください。
クライアント証明書認証の設定
SSLモジュールをSSLサーバとして設定する場合、SSLクライアントを認証するように、SSLモジュールを設定することができます。この場合、SSLモジュールはSSLクライアントからの証明書を認証するよう要求します。
SSLクライアントを認証するには、SSLモジュールで次の点を確認する必要があります。
•
あるレベルの証明書が、次のレベルで発行者により適切に署名されている。
•
証明書チェーン内の最低1つの発行者の証明書が、SSLプロキシ サービスにより信頼されている。
•
証明書チェーン内に、CRLに表示されていたり、ACLに拒否されている証明書がない。
SSLクライアント証明書を確認するために、SSLモジュールは信頼されるCAのリスト(CAプール)により設定されます。信頼されるCAプールは、データベース内の信頼されるCAのサブセットです。SSLモジュールは、CAプールで設定されたCAが発行する証明書のみを信頼します。
SSLモジュールをSSLサーバとして設定し、クライアントの証明書を認証する必要がある場合、
(注) プロキシ サービスを操作上のアップにするには、CAプール内に証明書付きのトラストポイントが、最低1つは存在する必要があります。CAプール内に証明書付きのトラストポイントがない場合、プロキシ サービスは自動的にダウンされます。
(注) CAプール内にこの階層の特定レベルのCAが含まれない場合は、認証されない可能性があります。このタイプのエラーを回避して、認証でsignature-onlyの確認を行う際の効率を改善するには、すべてのレベルの下位CAおよびルートCAを合わせて、CAプールに追加します。
(注) CAのトラストポイントが削除される場合、これに対応するトラストポイントを信頼されるCAプールから削除する必要があります。
クライアント認証を設定する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)# ssl-proxy pool ca_pool_name |
CAプールを作成します。
(注) 最大8つのプールを作成できます。
|
ステップ 2 |
ssl-proxy(config-ssl-proxy)# ca trustpoint ca_trustpoint_label |
信頼されるCAをプールに追加します。
(注) 各プールには、最大16のCAを追加することができます。
|
ステップ 3 |
ssl-proxy(config-ssl-proxy)# exit |
configモードに戻ります。 |
ステップ 4 |
ssl-proxy(config)# ssl-proxy service proxy_name |
SSLサーバ プロキシ サービスの名前を定義します。 |
ステップ 5 |
ssl-proxy(config-ssl-proxy)# trusted-ca ca_pool_name |
信頼されるCAプールをプロキシ サービスに関連付けます。 |
ステップ 6 |
ssl-proxy(config-ssl-proxy)# authenticate verify { signature-only | all } |
クライアント証明書認証をイネーブルにして、確認形式を指定します。
(注) signature-onlyキーワードを使用すると、CRLの検索またはACLとの適合は行われず、シグニチャのみが確認されます。デフォルトはallです。
|
ステップ 7 |
ssl-proxy(config-ssl-proxy)# exit |
コンフィギュレーション モードを終了します。 |
次に、シグニチャのみ(signature-only)を確認して、クライアント証明書認証を設定する例を示します。
ssl-proxy(config)# crypto ca trustpoint rootca
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate rootca
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ssl-proxy(config)# ssl-proxy pool ca rootca
ssl-proxy(config-ca-pool)# ca trustpoint rootca
ssl-proxy(config-ca-pool)# ^Z
ssl-proxy(config)# ssl-proxy service client-auth-sig-only
ssl-proxy(config-ssl-proxy)# virtual ipaddr 14.0.0.1 protocol tcp port 443
ssl-proxy(config-ssl-proxy)# server ipaddr 24.0.0.1 protocol tcp port 80
ssl-proxy(config-ssl-proxy)# certificate rsa general-purpose trustpoint test-cert
ssl-proxy(config-ssl-proxy)# trusted-ca rootca
ssl-proxy(config-ssl-proxy)# authenticate verify signature-only
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# !
次に、すべて(all)を確認して、クライアント証明書認証を設定する例を示します。
ssl-proxy(config)# crypto ca trustpoint rootca
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate rootca
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ssl-proxy(config)# ssl-proxy pool ca rootca
ssl-proxy(config-ca-pool)# ca trustpoint rootca
ssl-proxy(config-ca-pool)# ^Z
ssl-proxy(config)# ssl-proxy service client-auth-verify-all
ssl-proxy(config-ssl-proxy)# virtual ipaddr 14.0.0.2 protocol tcp port 443
ssl-proxy(config-ssl-proxy)# server ipaddr 24.0.0.1 protocol tcp port 80
ssl-proxy(config-ssl-proxy)# certificate rsa general-purpose trustpoint test-cert
ssl-proxy(config-ssl-proxy)# trusted-ca rootca
ssl-proxy(config-ssl-proxy)# authenticate verify all
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# !
サーバ証明書認証
SSLモジュールをSSLクライアントとして設定する場合(バックエンドの暗号化に対してなど)、SSLモジュールはSSLサーバを常に認証します。
SSLサーバを認証するには、SSLモジュールで次の点を確認する必要があります。
•
あるレベルの証明書が、次のレベルで発行者により適切に署名されている。
•
証明書チェーン内の最低1つの発行者の証明書が、SSLプロキシ サービスにより信頼されている。
•
証明書チェーン内に、CRLに表示されていたり、ACLに拒否されている証明書がない。
デフォルトでは、SSLモジュールは、CRLに表示されず、ACLに拒否されない証明書付きの任意のCAトラストポイントにより発行されたすべての証明書を受け入れます。
任意で、信頼されるCAプールを作成し、これをプロキシ サービスに関連付けることができます。この場合、SSLモジュールはプール内のCAにより発行された証明書のみを受け入れます。
また、 authenticate verify signature-only コマンドを入力して、シグニチャのみの確認を選択することもできます。シグニチャを確認すると、CRLおよびACLのチェックは省略されます。signature-onlyオプションを指定するには、信頼されるCAプールを設定する必要があります。
サーバ証明書認証を設定する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)#
ssl-proxy pool
ca_pool_name
|
CAプールを作成します。
(注) 最大8つのプールを作成できます。
|
ステップ 2 |
ssl-proxy(config-ssl-proxy)#
ca trustpoint
ca_trustpoint_label
|
信頼されるCAをプールに追加します。
(注) 各プールには、最大16のCAを追加することができます。
|
ステップ 3 |
ssl-proxy(config-ssl-proxy)#
exit
|
configモードに戻ります。 |
ステップ 4 |
ssl-proxy(config)#
ssl-proxy service
proxy_name
client
|
SSLクライアント プロキシ サービスの名前を定義します。
(注) clientキーワードを入力して、SSLクライアント プロキシ サービスを設定します。
|
ステップ 5 |
ssl-proxy(config-ssl-proxy)#
trusted-ca
ca_pool_name
|
(任意)CAプールをプロキシ サービスに関連付けます。
(注) ステップ 6でsignature-onlyを指定する場合は、CAプールを設定する必要があります。
|
ステップ 6 |
ssl-proxy(config-ssl-proxy)#
authenticate verify {
signature-only |
all }
|
(任意)サーバ証明書認証をイネーブルにして、確認形式を指定します。
(注) signature-onlyキーワードを使用すると、CRLの検索またはACLとの適合は行われず、署名のみが確認されます。signature-onlyを指定するには、CAプールを設定する必要があります。デフォルトはallです。
|
ステップ 7 |
ssl-proxy(config-ssl-proxy)#
exit
|
コンフィギュレーション モードを終了します。 |
次に、シグニチャのみ(signature-only)を確認して、サーバ証明書認証を設定する例を示します。
ssl-proxy(config)# crypto ca trustpoint rootca
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate rootca
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ssl-proxy(config)# ssl-proxy pool ca rootca
ssl-proxy(config-ca-pool)# ca trustpoint rootca
ssl-proxy(config-ca-pool)# ^Z
ssl-proxy(config)# ssl-proxy service client-proxy-sig-only client
ssl-proxy(config-ssl-proxy)# virtual ipaddr 14.0.0.3 protocol tcp port 81
ssl-proxy(config-ssl-proxy)# server ipaddr 24.0.0.2 protocol tcp port 443
ssl-proxy(config-ssl-proxy)# trusted-ca rootca
ssl-proxy(config-ssl-proxy)# authenticate verify signature-only
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# !
次に、すべて(all)を確認して、サーバ証明書認証を設定する例を示します。
ssl-proxy(config)# crypto ca trustpoint rootca
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate rootca
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ssl-proxy(config)# ssl-proxy pool ca rootca
ssl-proxy(config-ca-pool)# ca trustpoint rootca
ssl-proxy(config-ca-pool)# ^Z
ssl-proxy(config)# ssl-proxy service client-proxy-verify-all client
ssl-proxy(config-ssl-proxy)# virtual ipaddr 14.0.0.4 protocol tcp port 81
ssl-proxy(config-ssl-proxy)# server ipaddr 24.0.0.2 protocol tcp port 443
ssl-proxy(config-ssl-proxy)# trusted-ca rootca
ssl-proxy(config-ssl-proxy)# authenticate verify all
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# ^Z
次に、すべて(all)を確認して、サーバ証明書認証を設定する例を示します。ここで、SSLモジュールはクライアントとして設定され、要求される場合はSSLサーバにその証明書を送信します。
ssl-proxy(config)# crypto ca trustpoint rootca
ssl-proxy(ca-trustpoint)# enrollment terminal
ssl-proxy(ca-trustpoint)# crl optional
ssl-proxy(ca-trustpoint)# exit
ssl-proxy(config)# crypto ca authenticate rootca
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIC1zCCAoGgAwIBAgIQadUxzU/i97hDmZRYJ1bBcDANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJVUzETMBEGA1UECBMKY2FsaWZvcm5pYTERMA8GA1UEBxMIc2Fu
IGpvc2UxDjAMBgNVBAoTBWNpc2NvMQwwCgYDVQQLEwNoc3MxIDAeBgNVBAMTF3Np
bXBzb24tZGV2dGVzdC1yb290LUNBMB4XDTAzMTExMTIxNDgwMloXDTEzMTExMTIx
NTczOVowdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCmNhbGlmb3JuaWExETAPBgNV
BAcTCHNhbiBqb3NlMQ4wDAYDVQQKEwVjaXNjbzEMMAoGA1UECxMDaHNzMSAwHgYD
VQQDExdzaW1wc29uLWRldnRlc3Qtcm9vdC1DQTBcMA0GCSqGSIb3DQEBAQUAA0sA
MEgCQQCWEibAnUlVqQNUn0Wb94qnHi8FKjmVhibLHGRl6J+V7gHgzmF2MTz5WP5l
VQ2/1NVu0HjUORRdeCm1/raKJ/7ZAgMBAAGjgewwgekwCwYDVR0PBAQDAgHGMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCYGLUBTKNd9EgUonHnoSvbHg0axMIGX
BgNVHR8EgY8wgYwwQ6BBoD+GPWh0dHA6Ly9jaXNjby1sOGo2b2hwbnIvQ2VydEVu
cm9sbC9zaW1wc29uLWRldnRlc3Qtcm9vdC1DQS5jcmwwRaBDoEGGP2ZpbGU6Ly9c
XGNpc2NvLWw4ajZvaHBuclxDZXJ0RW5yb2xsXHNpbXBzb24tZGV2dGVzdC1yb290
LUNBLmNybDAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQUFAANBACBqe1wy
YjalelGZqLVu4bDVMFo6ELCV2AMBgi41K3ix+Z/03PJd7ct2BIAF4lktv9pCe6IO
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint:AC6FC55E CC29E891 0DC3FAAA B4747C10
% Do you accept this certificate? [yes/no]:yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ssl-proxy(config)# ssl-proxy pool ca rootca
ssl-proxy(config-ca-pool)# ca trustpoint rootca
ssl-proxy(config-ca-pool)# ^Z
ssl-proxy(config)# ssl-proxy service client-proxy-sending-client-cert client
ssl-proxy(config-ssl-proxy)# virtual ipaddr 14.0.0.5 protocol tcp port 81
ssl-proxy(config-ssl-proxy)# server ipaddr 24.0.0.3 protocol tcp port 443
ssl-proxy(config-ssl-proxy)# certificate rsa general-purpose trustpoint test-cert
ssl-proxy(config-ssl-proxy)# trusted-ca rootca
ssl-proxy(config-ssl-proxy)# authenticate verify all
ssl-proxy(config-ssl-proxy)# inservice
ssl-proxy(config-ssl-proxy)# !
CRLのダウンロード
有効とされている証明書に、CRL Distribution Point(CDP)拡張子フィールドが含まれる場合、このモジュールはCDPをダウンロード パスとして使用します。SSLモジュールは、次の3タイプのCDPをサポートします。
•
HTTP URL
http://hostname/file.crlなど
•
X.500 Distinguished Name(DN)
CN=CRL,O=cisco,C=usなど
•
LDAP URL
ldap://hostname/CN=CRL,O=cisco,C=usなど
証明書にCDPがない場合、SSLモジュールがこの証明書に関連付けられたトラストポイントを検索します。SSLモジュールが1つまたは複数の関連するトラストポイントを認識した場合、そのトラストポイントの1つを使用して、SCEPの登録URLによりダウンロード パスおよびプロトコルを判別します。SCEPの登録URLがない場合は、認証されません。
(注) CRL要求にSCEPを使用する際は、トラストポイントに鍵ペアを関連付ける必要があります。このために、既存の鍵ペアを任意で割り当てることができます。鍵ペアは、CRLダウンロード要求に署名するために使用されます。
SSLモジュールは、ルートCA証明書上でCRL検索を実行しません。理由は、次のとおりです。
•
ルートCA証明書の多くには、CDP拡張子が含まれません。CAがCRL要求に関するSCEPをサポートしない場合、CRLはダウンロードされません。
•
CRLは、ルートCAにより署名されます。ルートCAが取り消された場合、CRLは無効になる可能性があります。取り消されたルートCAに関連付けられたすべてのトラストポイントは、取り消しが明らかになるとただちにデータベースから削除される必要があります。
ダウンロード パスが不明の場合、またはダウンロード処理ができない場合、ピア証明書チェーンは拒否されます。
モジュールはCRLをダウンロードしたあとで、証明書のシリアル番号がCRLに表示されているかを確認します。有効とされている証明書のシリアル番号がCRLに表示されている場合、ピア証明書チェーンは拒否されます。
(注) CA証明書の中に信頼できるものがある場合でも、ピア証明書チェーン内の1つまたは複数の証明書はCRL検索を実行しない場合があります(たとえば、CA証明書がインポートされてから取り消された場合、またはこのCAの証明書用にダウンロードされたCRLが期限切れになり、更新済みのCRLをダウンロードできない場合など)。
CRLオプションの設定
(注) ルートCAまたは下位CA証明書に関連付けられたトラストポイントが、複数存在する場合があります。証明書認証の間に、これらのトラストポイントのいずれかを選択して、CRL設定を判別することができます。一貫した認証結果を取得するには、これらのトラストポイントのすべてが同じCRL設定である必要があります。
デフォルトでは、証明書を認証するのにトラストポイントが選択された場合は常に、SSLモジュールがCRL検索を実行します。CRLがデータベースに存在しないか、または期限切れの場合は、SSLモジュールがCRLをダウンロードし、あとで使用するためにデータベースに保管しておきます。CRLをダウンロードできない場合、SSLモジュールは有効とされている証明書を拒否します。
CRL検索には、次の2つのオプションを設定することができます。
•
ベストエフォート型
SSLモジュールがデータベース内のCRLを検出し、これが期限切れでない場合、SSLモジュールはCRL検索を実行します。SSLモジュールがCRLを検出できない場合、CRLのダウンロードを試みます。ただし、SSLモジュールがCRLをダウンロードできなければ、証明書を受け入れます。
•
オプション型
SSLモジュールがデータベース内のCRLを検出し、これが期限切れでない場合、SSLモジュールはCRL検索を実行します。SSLモジュールがCRLを検出しなければ、証明書を受け入れます。SSLモジュールは、CRLのダウンロードを試みません。
CRLオプションを設定する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)#
crypto ca trustpoint
trustpoint-label
|
モジュールで使用するトラストポイントを宣言します。このコマンドをイネーブルにすると、 ca-trustpointコンフィギュレーション モードになります。 |
ステップ 2 |
ssl-proxy(ca-trustpoint)#
crl [
best-effort |
optional ]
|
CRLオプションを指定します。 |
CRLの更新
CRLは期限切れになるまでは、後続の証明書で再利用することができます。
指定されたCRLのNextUpdate時刻になると、CRLは削除されます。CRLの残り時間を表示するには、 show crypto ca timers コマンドを入力します。
CRLの期限は切れていないが、CRLの内容が期限切れの可能性がある場合、ただちに最新のCRLをダウンロードして、旧CRLと置き換えることができます。
ただちに最新のCRLをダウンロードするよう要求するには、次のコマンドを入力します。
|
|
ssl-proxy(config)#
crypto ca crl request
trustpoint_label
|
更新済みのCRLを要求します。 このコマンドにより、現在保存されているCRLが最新バージョンのCRLと置き換えられます。 |
(注) 新しいCRLをダウンロードすると、既存のバージョンはすべて上書きされます。
次に、トラストポイント[tp-root:]に関連付けられたCRLをダウンロードする例を示します。
ssl-proxy(config)# crypto ca crl request tp-root
X.500 CDP情報の入力
CDPがX.500 DN形式の場合、ホスト名およびポートを入力することができます。クエリには、次の形式の情報が使用されます。 ldap:// hostname :[ port ]
たとえば、有効とされている証明書には次の情報があります。
•
X.500 DNは、 CN=CRL,O=Cisco,C=US で設定されます。
•
関連付けられたトラストポイントは、 crl query ldap://10.1.1.1 で設定されます。
次に、これら2つを組み合わせて完全なURLを形成します(下記を参照)。
ldap://10.1.1.1/CN=CRL,O=Cisco,C=US
(注) トラストポイントは、有効とされている証明書の発行者のCA証明書と関連付けられる必要があります。データベース内にこのようなトラストポイントがない場合は、完全なURLを形成できず、CRLダウンロードが実行されません。
X.500 URLを使用してCRLをクエリするには、次のコマンドを入力します。
|
|
ssl-proxy(ca-trustpoint)#
crl query
host: [
port ]
|
X.500 URLを使用してCRLをクエリします。CRLのクエリに使用されるURLは、X.500 URLである必要があります。 |
CRLの手動入力
CAサーバが、オンラインで(HTTP、LDAP、またはSCEP)CRLを発行しない場合、オフラインでCRLの16進ダンプを取得し、これを手動で入力することができます。
CRLを手動で入力する手順は、次のとおりです。
|
|
|
ステップ 1 |
ssl-proxy(config)#
crypto ca certificate chain
name
|
証明書チェーンのコンフィギュレーション モードを開始します。 name には、CAの名前を指定します。 |
ステップ 2 |
ssl-proxy(config-cert-chain)#
crl
|
CAで発行される失効リストを手動で入力することができます。 |
ステップ 3 |
ssl-proxy(config-pubkey)#
quit
|
データ エントリ モードを終了します。 |
ステップ 4 |
ssl-proxy(config-cert-chain)#
end
|
証明書チェーンのコンフィギュレーション モードを終了します。 |
次に、CRLを手動で入力する例を示します。
ssl-proxy(config)# crypto ca certificate chain tp
ssl-proxy(config-cert-chain)# crl
Enter the CRL in hexidecimal representation....
ssl-proxy(config-pubkey)# 30 82 01 7E 30 81 E8 30 0D 06 09 2A 86 48 86 F7
ssl-proxy(config-pubkey)# 0D 01 01 05 05 00 30 16 31 14 30 12 06 03 55 04
ssl-proxy(config-pubkey)# 03 13 0B 69 6F 73 2D 72 6F 6F 74 20 43 41 17 0D
ssl-proxy(config-pubkey)# 30 33 31 32 31 31 32 33 33 37 35 34 5A 17 0D 30
ssl-proxy(config-pubkey)# 33 31 32 31 38 32 33 33 37 35 34 5A 30 81 A0 30
ssl-proxy(config-pubkey)# 12 02 01 04 17 0D 30 33 31 30 31 34 32 32 32 35
ssl-proxy(config-pubkey)# 30 34 5A 30 12 02 01 03 17 0D 30 33 31 30 31 34
ssl-proxy(config-pubkey)# 32 32 32 35 33 30 5A 30 12 02 01 05 17 0D 30 33
ssl-proxy(config-pubkey)# 31 31 31 33 31 39 30 39 33 36 5A 30 12 02 01 06
ssl-proxy(config-pubkey)# 17 0D 30 33 31 31 31 33 31 39 32 30 34 32 5A 30
ssl-proxy(config-pubkey)# 12 02 01 07 17 0D 30 33 31 31 31 33 32 32 30 35
ssl-proxy(config-pubkey)# 35 32 5A 30 12 02 01 08 17 0D 30 33 31 31 31 33
ssl-proxy(config-pubkey)# 32 32 34 34 32 30 5A 30 12 02 01 2B 17 0D 30 33
ssl-proxy(config-pubkey)# 31 31 31 33 32 33 33 36 35 37 5A 30 12 02 01 09
ssl-proxy(config-pubkey)# 17 0D 30 33 31 31 31 33 32 33 33 37 34 38 5A 30
ssl-proxy(config-pubkey)# 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05 00 03 81
ssl-proxy(config-pubkey)# 81 00 67 DE 12 99 9F C5 DF 4A F8 24 76 CE 98 4F
ssl-proxy(config-pubkey)# 7C 5C 72 1C E0 00 A9 CE 08 6E 46 8F 4D 1B FA 8E
ssl-proxy(config-pubkey)# C9 DE CF AC 13 7D 2F BF D4 A6 C2 7B E2 31 B1 EC
ssl-proxy(config-pubkey)# 99 83 54 B3 11 24 6F C3 C3 93 C4 53 38 B6 72 86
ssl-proxy(config-pubkey)# 0A 30 F2 95 71 AE 15 66 87 3E C1 7F 8B 46 6F A9
ssl-proxy(config-pubkey)# 77 D0 FF D4 FC 73 83 79 98 BD 40 DB C1 72 9D 95
ssl-proxy(config-pubkey)# 9B 57 D1 3C 2F EF B6 63 6B 5B E4 35 40 52 2D 3A
ssl-proxy(config-pubkey)# 19 1A 4E CA 70 C6 ED 49 7A 7C 01 88 B9 CA 14 7B
ssl-proxy(config-pubkey)# 0E 1F
ssl-proxy(config-pubkey)# quit
ssl-proxy(config-cert-chain)# end
CRL情報の表示
CRLの情報を表示するには、次のコマンドを入力します。
|
|
ssl-proxy(config)#
show crypto ca crls
|
データベース内の各CRLの有効日時を表示します。 |
次に、データベース内の各CRLの有効日時を表示する例を示します。
ssl-proxy# show crypto ca crls
CN = test-root-CA, OU = lab, O = cisco, L = san jose, ST = california, C = US
LastUpdate:19:08:45 UTC Dec 3 2003
NextUpdate:20:13:45 UTC Dec 3 2003
Retrieved from CRL Distribution Point:
http://test-ca/CertEnroll/test-root-CA.crl
CRLの削除
(注) CRLは、トラストポイント単位ではなく、グローバルに削除されます。
CRLを削除するには、トラストポイントの任意の証明書チェーンに対して no crl コマンドを入力します。
次に、CRLを削除する例を示します。
ssl-proxy(config)# crypto ca certificate chain tp1
ssl-proxy(config-cert-chain)# no crl
ssl-proxy(config-cert-chain)# end