はじめに
このドキュメントでは、以下ドキュメントにて紹介した構成に対して、ASA ID 証明書(サーバ証明書)を自己署名のものではなく、CA で署名したものを使用する際の設定例について紹介させて頂きます。
Cisco AnyConnect Secure Mobility Client を使用して Remote Access VPN を行う際の設定 (1)
https://supportforums.cisco.com/docs/DOC-37040
上記の設定例では、ASA のサーバ証明書を、ASA 自身が発行した自己署名証明書を使用していた関係で、初回接続時に、証明書が信用できない旨の警告が出ていました。警告自体は出ていても暗号化通信の疎通性、という意味では問題はないのですが、好ましい運用ではありませんし、ユーザに対して証明書の警告に対して安易に "OK" をクリックするという悪い習慣を植え付ける温床となり、結果的に rougue ASA への脆弱性につながる可能性がありますので、実運用の際には、ASA のサーバ証明書には信頼された CA から発行されたものを利用いただければと思います。
まず最初に、証明書を発行する前に、ASA に対して hostname と、domain name の設定をしてください。
1.証明書発行要求(CSR : Certificate Signing Request) の発行
CA より証明書の発行を受ける際の一般的な手順として、機器自身のRSA キーペアの作成並びに、その鍵の持ち主を証明する証明書を発行するための、CSR Certificate Signing Request を作成する必要があります。
Configuration > Remote Access VPN > Certificate Management > Identity Certificate 画面に遷移し、Add をクリックしてください。
この画面での、Trustpoint Name とは名前の通り Trustpoint の名前となりますが、Trustpoint という概念について、簡単に説明させて頂きます。
Trustpoint とは、証明書の検証に必要な CA 証明書、自身の公開鍵を証明するためのサーバ証明書や、クライアント証明書の検証に際するオプションなどを一つに束ねたものです。
今回の例では、TP_W2K8_CA という名前で Trustpoint を作成し、KP_AC_PKI という名前のキーペアをそのTrustpoint に紐づけ、CN=asa5512.domain1.local という Subject Name を設定します。
最初に、Trustpoint の名前を設定します。後程使用するので、わかりやすい名前を設定されることをお勧めします。
次に、今回は ASA から CSR を発行して、それをもとに CA に署名をさせる形で ASA に証明書を Import するので、"Add a new identity certificate" をチェックします。
新たにキーペアを生成するためには、Key Pair の右にある、"New" ボタンをクリックしてください。
キーの名前と、鍵長を指定して、Generate Now をクリックすると、RSA のキーペアが作成されます。
次にどのような Subject Name で CSR を発行するか、の設定を行います。 Trustpoint の設定画面で、Certificate Subject DN の右にある、"Select" をクリックしてください。
ここは、Subject Name をどのような内容にするか、という設定を行う個所となります。
この例では、シンプルに、CN=asa5512.domain1.local をいう Subject Name を指定しています。
上記が今までの設定を終えた段階での、Trustpoint の設定画面となります。
この状態で、"Add Certificate" をクリックすると、CSR をローカル PC に保存できます。
CSR の発行が完了し、CA の署名待ちという状況になりますので、ステータスは、Pending になります。
CSR が発行されたら、それを CA 業者や、PKI の担当者に渡して署名した証明書を受け取る、というフローが必要となりますが、今回の例では、Windows 2008 R2 サーバで立てた CA にて、当該 CSR にサインする際の手順の例を紹介します。
2. CA からの証明書の発行
Windows CA の証明書発行用のページにアクセスします。 設定に依存すると思いますが、基本的には、以下のいずれかでアクセスできるはずです。
http://<windows サーバのアドレス or FQDN>/certsrv
https://<windows サーバのアドレス or FQDN>/certsrv
Request s certificate をクリックします。
advanced certificate request をクリックします。
Submit a certificate request by using a base-64-encoded CMC or PKCS#10 file, or submit a revewal
request by using a base-64-encoded PKCS#7 file. をクリックします。
Saved Request に、ASA からローカル PC に保存した CSR の中身をコピーしてください。
ここで、Yes をクリックし、発行された証明書ファイルを保存してください。
3. 証明書の ASA へのインポート
ASDM にて、Configuration > Remote Access VPN > Certificate Management > Identity Certificates と進んで頂き、1 で作成した Truspoint を選択して、Install をクリックします。
Install from a file にて、先ほど CA で作成した証明書ファイルを選択してください。
Install Certificate をクリックします。
4. インポートした証明書を SSL-VPN のサーバ証明書として使用するように設定
Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profilesにて、Device Certificate ... をクリックして、今回作成した Trustpoin を指定します。
上記の設定までで、ASA がクライアントに提示するサーバ証明書は、新しく CA に署名させた証明書に切り替わっています。 しかしながら、前回の例で作成した AnyConnect の Client Profile では、接続先の ASA が、IP アドレスで指定されていました。 そのため、このまま接続を行うと、接続使用している ASA(10.1.1.12) と、その ASA が提示している証明書の Subject Name が異なるため、警告が出力されます。
ですので、Client Profile にて指定されている接続先を、Subject Name に含まれている FQDN に変更しましょう。
それと同時に、作成していた Group-URL の値も変更する必要があります。なぜならば、クライアントがアクセスするときに使用する URL が、Client Profile の変更に伴い変更されるからです。
以上で設定は完了です。警告なして AnyConnect の接続が完了するはずです。
Group-URL を変更している関係で、以前の例で使用した Profile を使用しての接続はできませんので、
一度ブラウザを使用して、WebLaunch してください。その際には、新しく設定した Group URL を指定します。
一度接続が確立されれば、クライアント上の Client Profile も ASA 上で変更したものに更新されますので、次回は AnyCOnnect のアプリケーションから直接接続を実施しても、警告なしで接続可能になります。
今回も参考までに設定終了時点での ASA の設定をアタッチしておきましたので、ご参考までにどうぞ。