2016-06-24 08:12 PM
[toc:faq]
ISE 2.0 以降で導入された Certificate Provisioning Portal により、管理者、または利用者はポータルや API を利用して手動で証明書を発行することができるようになりました。以下では、ISE 2.1 の Internal CA を使用した、Certificate Provisioning Portal の構築手順と動作概要、また簡単なトラブルシュート方法を紹介します。
2台の ISE それぞれが Policy Administration Node (PAN)と Policy Service Node (PSN) として稼動するスタンドアロンHA構成を使用します。この後に続く手順は、Primary PAN の ise21x で、ise21y のレジスタが完了した後に、ise21x の管理ポータルから実施した操作となります。
Administration > System > Certificates > Certificate Authority > Internal CA Setting より、ポータルを提供する PSN で Internal CA が有効になっていることを確認してください。PSN ではない ISE インスタンスでは、Internal CAは有効になりません。
Internal CA が有効になると、CA証明書が自動生成されます。ISE 2.0 まで Internal CA の CA 証明書は、 Administration > System > Certificates > Trusted Certificate から確認していましたが、ISE 2.1 では、新たに追加された Administration > System > Certificates > Certificate Authority > Certificate Authority Certificates から確認します。
今回の構成では、Primary PAN 上の PSN で、Root CA、Node CA、Endpoint CA および OCSP 証明書が生成され、Secondary PAN 上の PSN では、Root CA を除いた3つの証明書が生成されていることが分かります。
スタンドアロン、分散構成それぞれの CA の構造は 管理者ガイド を参照ください。 たとえば PSN のみが稼動するノードがあれば、PAN の Node CA を Issuer とした Endpoint CA と OCSP certificate のみが生成されます。
Administration > System > Certificates > Certificate Authority > Certificate Templates から、証明書作成で使用するテンプレートを作成します。デフォルトでテンプレートが用意されているので、たとえば、EAP_Authentication_Certificate_Template というテンプレートをクライアント証明書用にカスタマイズして使用することができます。
今回は、クライアント証明書の発行に、新たに、Client1 というテンプレートを作成します。Add を実行して、テンプレート名および各項目を入力してきます。各項目の説明については、管理者ガイド を参照ください。なお、Subject Alternative Name (SAN)は、MACアドレスのみをサポートしています。
Save してテンプレートが作成されていることを確認します。
デフォルトのテンプレートを使用しない場合も削除はしないでください。
Do Not Delete the Default Internal Cisco ISE CA Templates
Administration > Device Portal Management > Certificate Provisioning
からポータルの設定を行います。 今回は新たに、"CertPortal" というポータルを作成してみます。
以下では、Portal Settings から Certificate Provisioning Portal の各設定画面を個別に展開して、設定を行っていきます。
こちらは設定項目が多数含まれるので、画面を分割して説明します。
まず、ポータルで使用する HTTPS ポート番号(デフォルト8443 )、ポータルを待ち受けるインターフェースを設定します。また、使用するインターフェースを指定します。
Certificate group tab は、ポータルアクセスで使用するサーバ証明書のグループタグを指定します。今回は、CertPortal というタグに紐づいたサーバ証明書をあらかじめ用意して指定しています。
Authentication method では、ポータルアクセスの認証で使用する Identity Store Sequence を指定します。今回は、デフォルトの Certificate_Request_Sequence で Internal Users のみをサーチリストに指定します。
Authorized groups として、ポータルアクセスを許可するグループを指定します。今回は、Internal Users の Employee を使用します。
ポータルにリダイレクトされる FQDNを指定します。今回は、ise21x のポータルに portal1.ise21x.tkymidtown.local、ise21y のポータルに portal2.ise21y.tkymidtown.local を定義しています(DNS サーバも更新しています)。
※ ISE 2.1 で FQDN を複数定義すると、不具合により、画面右上の Portal test URL からのポータルアクセスが正常に動作しません。今後の修正をお待ちください。動作確認の際は、直接ポータルの URL にアクセスしてください。
Idle timeout はポータルにログイン後にアイドル時間を検知して、強制的にログアウトされるまでの時間になります。
Login Page Settings はログインページの設定になります。 Acceptable Use Policy (AUP) の追加等、Page Customizations と併せて必要に応じて設定します。
Acceptable Use Policy(AUP) Page Setting はログイン後に表示される AUP のページ設定になります。利用する場合はPage Customizations と併せてカスタマイズください。
Post-Login Banner Page Settings はログイン後のページの設定になります。こちらも利用する場合はPage Customizations と併せてカスタマイズください。
Change Password Settings を有効にすると Internal User 利用時のパスワード変更をポータルから出来るようになります。
Certificate Provisioning Portal Settingsでは、1-3 で作成した Client1 を適用します(複数定義して証明書発行時にプルダウンで選択できます)。
一通りの設定が完了したので、実際にポータルから証明書を発行してみます。
FQDN で定義した portal1.ise21x.tkymidtown.local や portal2.ise21y.tkymidtown.local に HTTPS でアクセスして Sign On ページが表示されることを確認します。アクセスを許可するのは Authorized Groups で定義した Employee というグループのユーザと設定していました。今回は事前に employee1 というユーザと、Admin 権限を持つ certadmin という2つの IDを用意しています。Employee グループの IDでログインします。
証明書プロビジョニングのサインオン画面例
※ アクセスで使用するブラウザの Locale により日本語表記となります。
ログイン後に Client1 というテンプレートを使用して証明書を発行します。参考までに日本語と英語版の両方を掲載します。
証明書生成画面例 (日本語と英語版)
今回は以下の条件を指定しています。
証明書が正常に生成されて、ダウンロードされるのを確認します。
これらを ise21x と ise21y の各ポータルから実行すると、生成される証明書は、それぞれの PSN の Endpoint CA が発行元として、Node CA、Primary PAN の Root CA のチェーンになっていることが確認できます。
Windows PC にインストール後の証明書チェーン
以下は、単一証明書を生成(証明書要求なし)の代わりに、certadmin という Admin ユーザを使用して、Generate bulk certificates | 一括証明書を生成 から複数の他ユーザの証明書を一括発行した例になります。
Bulk certificates 生成までの流れ
生成された証明書は、Administration > System > Certificates > Certificate Management > Endpoint Certificates から管理します。
REST Client から REST API を使用して、 証明書を発行します。利用にあたり、事前に Administration > System > Settings > ERS Settings から、ERS を有効にしてある必要があります。API のサンプルは、公開のリファレンスガイドがありますが、SDK (https://<ISE-ADMIN-NODE>:9060/ers/sdk)をまず参照することを推奨します。
SDK の画面
以下ではサンプルを参照して実際にリクエストを作成してみます。
Headers
Content-Type: application/vnd.com.cisco.ise.ca.endpointcert.1.0+xml; charset=utf-8
Accept: application/vnd.com.cisco.ise.ca.endpointcert.1.0+xml
Authorization: Basic ZW1wbG95ZWUxOmFzcXdBU1FXMTIzNA==
Body (Raw)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns4:endpointcert xmlns:ers="ers.ise.cisco.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns4="ca.ers.ise.cisco.com"> <certTemplateName>Client1</certTemplateName> <certificateRequest> <entry> <key>san</key> <value>11-22-33-44-55-88</value> </entry> <entry> <key>cn</key> <value>employee1</value> </entry> </certificateRequest> <format>PKCS12_CHAIN</format> <password>TEsT_1234</password> </ns4:endpointcert>
任意の REST Client でテストをします(今回は DHC を使用)。
Content-Disposition の endpointcert.zip をダウンロードして、証明書が発行されていることを確認します。
設定やフォーマットなどの不備により証明書の発行に失敗するようなケースでは、原因がそのまま表示されるため、エラー内容に沿って対応を行います。 また、 Operations > Reports > ISE Reports > Endpoints and Users > Manual Certificate Provisioning からもエラーの内容を確認することができます。
例
他方で、以下のような ISE server error 記録されるようなケースは、通常想定されないパターンに起因したエラーであることが考えられます。 Report にも何も記録されない可能性が高いです。
エラー発生時刻、きっかけとなった作業内容の詳細、直近の構成変更の有無といった情報と併せて、Support Bundle を取得して、メーカへの調査をご検討ください。また、あらかじめ以下の Log level を DEBUG 以上にしておくことが望ましいです。
ca-service
admin-ca
clientprovisioningportal
portal
Cisco Identity Services Engine API Reference Guide, Release 2.1
Chapter: External RESTful Services Calls
Certificate Provisioning Portal FAQs, Release 2.x
Create a Certificate Provisioning Portal
ISE 2.0: Certificate Provisioning Portal
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます