はじめに
このドキュメントでは、802.1X PEAPまたはEAP-TLS方式を使用して、スイッチポートでCiscoアクセスポイント(AP)を認証する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- ワイヤレス コントローラ
- アクセス ポイント
- 最大 300 のアクセス ポイント グループ
- ISEサーバ
- 認証局.
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- ワイヤレスコントローラ:17.09.02を実行するC9800-40-K9
- アクセスポイント:C9117AXI-D
- スイッチ:17.06.04を実行するC9200L-24P-4G
- AAAサーバ:3.1.0.518を実行するISE-VM-K9
- 認証局:Windows Server 2016
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
アクセスポイント(AP)を802.1Xを使用してスイッチポートで認証する場合は、証明書を必要としないEAP-FAST認証プロトコルがデフォルトで使用されます。APでPEAP-mschapv2方式(AP側ではクレデンシャルを使用するが、RADIUS側では証明書を使用)またはEAP-TLS方式(両側では証明書を使用)を使用する場合、最初にLSCを設定する必要があります。これは、信頼できる証明書またはルート証明書をアクセスポイント(およびEAP-TLSの場合はデバイス証明書)にプロビジョニングする唯一の方法です。 APがPEAPを実行して、サーバ側の検証を無視することはできません。このドキュメントでは、最初にLSCの設定について説明し、次に802.1Xの設定側について説明します。
PKIでセキュリティを強化し、認証局(CA)を制御し、生成された証明書に対してポリシー、制限、および使用法を定義する場合は、LSCを使用します。
LSCを使用すると、コントローラはCAによって発行された証明書を取得します。APはCAサーバと直接通信しませんが、WLCは参加しているAPに代わって証明書を要求します。CAサーバの詳細は、コントローラ上で設定され、アクセス可能である必要があります。
コントローラは、デバイス上で生成されたcertReqをCAに転送するためにSimple Certificate Enrollment Protocol(SCEP)を使用し、CAから署名付き証明書を取得するために再度SCEPを使用します。
SCEPは、PKIクライアントとCAサーバが証明書の登録と失効をサポートするために使用する証明書管理プロトコルです。これはシスコで広く使用されており、多くのCAサーバでサポートされています。SCEPでは、PKIメッセージのトランスポートプロトコルとしてHTTPが使用されます。SCEP の主な目標は、ネットワーク デバイスへの証明書のセキュアな発行です。
ネットワーク図

設定
主に、SCEP CAと9800 WLCの2つの設定があります。
Windows Server 2016 SCEP CA
このドキュメントでは、ラボ目的でのWindows Server SCEP CAの基本的なインストールについて説明します。実際の実稼働グレードのWindows CAは、エンタープライズ運用のために安全かつ適切に構成する必要があります。このセクションは、ラボでテストし、この設定を機能させるために必要な設定を参考にすることを目的としています。内容は次のとおりです。
ステップ1:新しいWindows Server 2016デスクトップエクスペリエンスをインストールします。
ステップ2:サーバに固定IPアドレスが設定されていることを確認します。
ステップ3:新しい役割とサービスをインストールし、Active DirectoryドメインサービスとDNSサーバから開始します。
Active Directoryのインストール
ADインストールの終了
ステップ4:完了したら、ダッシュボードでPromote this server to a domain controllerをクリックします。
ADサービスの設定
手順5:新しいフォレストを作成し、ドメイン名を選択します。
フォレスト名を選択してください
ステップ6:証明書サービスのロールをサーバに追加します。
証明書サービスの追加
証明機関だけを追加する
ステップ7:設定が完了したら、認証局を設定します。

ステップ8:エンタープライズCAを選択します。
エンタープライズ CA
ステップ9:ルートCAにする。Cisco IOS XE 17.6以降、下位CAはLSC用にサポートされています。
ルートCAの選択
IIS_IUSRSグループに属するCAに使用するアカウントを持つことが重要です。この例では、Administratorアカウントを使用してActive Directory Users and Computersメニューに移動し、AdministratorユーザーをIIS_IUSRSグループに追加します。
管理者アカウントをIIS_USERグループに追加します
ステップ10:正しいIISグループにユーザが入ったら、ロールとサービスを追加します。次に、オンラインレスポンダとNDESサービスを証明機関に追加します。
NDESおよびオンラインレスポンダーサービスのインストール
ステップ11:完了したら、それらのサービスを設定します。
オンラインレスポンダとNDESサービスのインストール
ステップ12:サービスアカウントを選択するように求められます。これは、以前にIIS_IUSRSグループに追加したアカウントです。
IISグループに追加したユーザを選択します
ステップ13:これはSCEP操作には十分ですが、802.1X認証を実現するには、RADIUSサーバに証明書をインストールする必要もあります。したがって、ISE証明書要求をWindows Serverに簡単にコピーアンドペーストできるように、Web登録サービスを簡単にインストールして設定します。
Web登録サービスのインストール
web登録サービスの構成
ステップ 14:SCEPサービスが正しく動作していることを確認するには、http://<serverip>/certsrv/mscep/mscep.dllにアクセスします。
SCEPポータルの検証
ステップ 15:
デフォルトでは、Windows Serverは、Microsoft SCEP(MSCEP)内で登録する前に、クライアントおよびエンドポイントの要求を認証するために動的チャレンジパスワードを使用しました。 これには、管理者アカウントがWeb GUIを参照して、要求ごとにオンデマンドパスワードを生成する必要があります(パスワードは要求内に含まれている必要があります)。コントローラは、サーバに送信する要求にこのパスワードを含めることはできません。この機能を削除するには、NDESサーバのレジストリキーを変更する必要があります。
レジストリエディタを開き、StartメニューでRegeditを探します。
Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Cryptography > MSCEP > EnforcePasswordの順に移動します。
EnforcePasswordの値を0に変更します。すでに0になっている場合は、そのまま残します。
Enforcepassword値の設定
証明書テンプレートとレジストリを設定する
証明書および証明書に関連付けられたキーは、CAサーバ内のアプリケーションポリシーで定義された異なる目的で、複数のシナリオで使用できます。アプリケーションポリシーは、証明書の拡張キー使用法(EKU)フィールドに保存されます。このフィールドは、オーセンティケータによって解析され、クライアントが目的に合わせて使用していることを確認します。適切なアプリケーションポリシーがWLCとAPの証明書に確実に統合されるようにするには、適切な証明書テンプレートを作成し、それをNDESレジストリにマッピングします。
ステップ 1:Start > Administrative Tools > Certification Authorityの順に移動します。
ステップ 2:CAサーバのフォルダツリーを展開し、Certificate Templatesフォルダを右クリックして、Manageを選択します。
ステップ 3:Users証明書テンプレートで右クリックし、コンテキストメニューからDuplicate Templateを選択します。
ステップ 4:Generalタブに移動し、必要に応じてテンプレート名と有効期間を変更します。その他のオプションはすべてオフのままにします。
注意:有効期間を変更する場合は、認証局(CA)ルート証明書の有効期間を超えないようにしてください。
証明書テンプレートの設定
ステップ 5:Subject Nameタブに移動し、Supply in the requestが選択されていることを確認します。ポップアップが表示され、証明書の署名に管理者の承認が不要であることが示されたら、OKを選択します。
要求で提供
手順 6:Extensionsタブに移動し、Application Policiesオプションを選択して、Edit...ボタンを選択します。Client AuthenticationがApplication Policiesウィンドウにあることを確認します。そうでない場合は、Addを選択して追加します。
拡張機能の確認
手順 7:Securityタブに移動し、Enable SCEP Services in the Windows Serverのステップ6で定義したサービスアカウントにテンプレートのフルコントロール権限があることを確認し、ApplyとOKを選択します。
フルコントロールを与える
ステップ 8:Certification Authority ウィンドウに戻り、Certificate Templatesフォルダを右クリックして、New > Certificate Template to Issueの順に選択します。
ステップ 9:以前に作成した証明書テンプレート(この例では9800-LSC)を選択し、OKを選択します。
注:新しく作成された証明書テンプレートは、すべてのサーバ間で複製する必要があるため、複数のサーバの導入でリストに表示されるまでに時間がかかる場合があります。
テンプレートの選択
新しい証明書テンプレートがCertificate Templatesフォルダのコンテンツ内に一覧表示されます。
LSCを選択
ステップ 10:Registry Editorウィンドウに戻り、Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Cryptography > MSCEPの順に移動します。
ステップ 11EncryptionTemplate、GeneralPurposeTemplate、およびSignatureTemplateレジストリを編集して、これらのレジストリが新しく作成した証明書テンプレートを指すようにします。
レジストリのテンプレートの変更
ステップ 12NDESサーバをリブートします。それから、Certification Authorityウィンドウに戻り、サーバ名を選択して、StopボタンとPlayボタンを順に選択します。

9800でのLSCの設定
次に、WLCでAPのLSCを設定する手順を順番に示します。
- RSAキーを作成します。このキーは、後でPKIトラストポイントに使用されます。
- トラストポイントを作成し、作成したRSAキーをマッピングします。
- APのLSCプロビジョニングを有効にし、トラストポイントをマッピングします。
- 加入しているすべてのAPに対してLSCを有効にします。
- プロビジョニングリストを使用して、選択したAPに対してLSCを有効にします。
- ワイヤレス管理トラストポイントを変更し、LSCトラストポイントをポイントします。
AP LSC GUIの設定手順
ステップ1:Configuration > Security > PKI Management > Key Pair Generationの順に選択します。
- addをクリックし、適切な名前を付けます。
- RSAキーサイズを追加します。
- key exportableオプションはオプションです。これは、キーをエクスポートする場合にのみ必要です。
- 生成を選択

ステップ 2:Configuration > Security > PKI Management > Trustpointsの順に移動します。
- addをクリックし、適切な名前を付けます。
- 登録URL(URLはhttp://10.106.35.61:80/certsrv/mscep/mscep.dll)と残りの詳細を入力します。
- ステップ1で作成したRSAキーペアを選択します。
- Authenticateをクリックします。
- Enroll trustpointをクリックし、パスワードを入力します。
- Apply to Deviceをクリックします。

ステップ3:Configuration > Wireless > Access Pointsの順に選択します。下にスクロールして、LSC Provisionを選択します。
- ステータスとしてenabledを選択します。これにより、このWLCに接続されているすべてのAPに対してLSCが有効になります。
- ステップ2で作成したトラストポイント名を選択します。
必要に応じて残りの詳細を入力します。

LSCを有効にすると、APはWLCを介して証明書をダウンロードし、リブートします。APコンソールセッションで、次のようなスニペットが表示されます。

ステップ4:LSCが有効になったら、LSCトラストポイントに一致するようにワイヤレス管理証明書を変更できます。これにより、APはLSC証明書を使用して加入し、WLCはAP加入にLSC証明書を使用します。APの802.1X認証を行う場合にのみ必要な場合は、この手順はオプションです。
- Configuration > Interface > Wirelessの順に選択し、Management Interfaceをクリックします。
- トラストポイントを、ステップ2で作成したトラストポイントと一致するように変更します。
これで、LSC GUIの設定の部分は終了です。APは、LSC証明書を使用してWLCに参加できる必要があります。

AP LSC CLIの設定手順
1. 次のコマンドを使用してRSAキーを作成します。
9800-40(config)#crypto key generate rsa general-keys modulus 2048 label AP-SCEP
% You already have RSA keys defined named AP-SCEP.
% They will be replaced
% The key modulus size is 2048 bits
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 0 seconds)
Sep 27 05:08:13.144: %CRYPTO_ENGINE-5-KEY_DELETED: A key named AP-SCEP has been removed from key storage
Sep 27 05:08:13.753: %CRYPTO_ENGINE-5-KEY_ADDITION: A key named AP-SCEP has been generated or imported by crypto-engine
2. PKIトラストポイントを作成し、RSAキーペアをマッピングします。登録URLと残りの詳細を入力します。
9800-40(config)#crypto pki trustpoint Access_Point-MS-CA
9800-40(ca-trustpoint)#enrollment url http://10.106.35.61:80/certsrv/mscep/mscep.dll
9800-40(ca-trustpoint)#subject-name C=IN,L=Bengaluru,ST=KA,O=TAC,CN=TAC-LAB.cisco.local,E=mail@tac-lab.local
9800-40(ca-trustpoint)#rsakeypair AP-SCEP
9800-40(ca-trustpoint)#revocation none
9800-40(ca-trustpoint)#exit
3. コマンドcrypto pki authenticate <trustpoint>を使用して、PKIトラストポイントを認証し、CAサーバに登録します。パスワードプロンプトにパスワードを入力します。
9800-40(config)#crypto pki authenticate Access_Point-MS-CA
Certificate has the following attributes:
Fingerprint MD5: C44D21AA 9B489622 4BF548E1 707F9B3B
Fingerprint SHA1: D2DE6E8C BA665DEB B202ED70 899FDB05 94996ED2
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
9800-40(config)#crypto pki enroll Access_Point-MS-CA
%
% Start certificate enrollment ..
% Create a challenge password. You will need to verbally provide this
password to the CA Administrator in order to revoke your certificate.
For security reasons your password will not be saved in the configuration.
Please make a note of it.
Password:
Sep 26 01:25:00.880: %PKI-6-CERT_ENROLL_MANUAL: Manual enrollment for trustpoint Access_Point-MS-CA
Re-enter password:
% The subject name in the certificate will include: C=IN,L=Bengaluru,ST=KA,O=TAC,CN=TAC-LAB.cisco.local,E=mail@tac-lab.local
% The subject name in the certificate will include: 9800-40.cisco.com
% Include the router serial number in the subject name? [yes/no]: yes
% The serial number in the certificate will be: TTM244909MX
% Include an IP address in the subject name? [no]: no
Request certificate from CA? [yes/no]: yes
% Certificate request sent to Certificate Authority
% The 'show crypto pki certificate verbose Access_Point-MS-CA' commandwill show the fingerprint.
Sep 26 01:25:15.062: %PKI-6-CSR_FINGERPRINT:
CSR Fingerprint MD5 : B3D551528B97DA5415052474E7880667
CSR Fingerprint SHA1: D426CE9B095E1B856848895DC14F997BA79F9005
CSR Fingerprint SHA2: B8CEE743549E3DD7C8FA816E97F2746AB48EE6311F38F0B8F4D01017D8081525
Sep 26 01:25:15.062: CRYPTO_PKI: Certificate Request Fingerprint MD5 :B3D55152 8B97DA54 15052474 E7880667
Sep 26 01:25:15.062: CRYPTO_PKI: Certificate Request Fingerprint SHA1 :D426CE9B 095E1B85 6848895D C14F997B A79F9005
Sep 26 01:25:15.063: CRYPTO_PKI: Certificate Request Fingerprint SHA2 :B8CEE743 549E3DD7 C8FA816E 97F2746A B48EE631 1F38F0B8 F4D01017 D8081525
Sep 26 01:25:30.239: %PKI-6-CERT_INSTALL: An ID certificate has been installed under
Trustpoint : Access_Point-MS-CA
Issuer-name : cn=sumans-lab-ca,dc=sumans,dc=tac-lab,dc=com
Subject-name : e=mail@tac-lab.local,cn=TAC-LAB.cisco.local,o=TAC,l=Bengaluru,st=KA,c=IN,hostname=9800-40.cisco.com,serialNumber=TTM244909MX
Serial-number: 5C0000001400DD405D77E6FE7F000000000014
End-date : 2024-09-25T06:45:15Z
9800-40(config)#
4. LSC証明書を使用してAP加入を設定します。
9800-40(config)#ap lsc-provision join-attempt 10
9800-40(config)#ap lsc-provision subject-name-parameter country IN state KA city Bengaluru domain TAC-LAB.cisco.local org TAC email-address mail@tac-lab.local
9800-40(config)#ap lsc-provision key-size 2048
9800-40(config)#ap lsc-provision trustpoint Access_Point-MS-CA
9800-40(config)#ap lsc-provision
In Non-WLANCC mode APs will be provisioning with RSA certificates with specified key-size configuration. In WLANCC mode APs will be provisioning with EC certificates with a 384 bit key.
Are you sure you want to continue? (y/n): y
5. 上記で作成したトラストポイントと一致するように、ワイヤレス管理トラストポイントを変更します。
9800-40(config)#wireless management trustpoint Access_Point-MS-CA
AP LSCの検証
WLCで次のコマンドを実行して、LSCを確認します。
#show wireless management trustpoint
#show ap lsc-provision summary
#show ap name < AP NAME > config general | be Certificate


APがリロードされたら、AP CLIにログインし、次のコマンドを実行してLSC設定を確認します。
#show crypto | be LSC
#show capwap cli config | in lsc
#show dtls connection



LSCプロビジョニングのトラブルシューティング
WLCまたはAPアップリンクスイッチポートからEPCキャプチャを取得して、APがCAPWAPトンネルを形成するために使用している証明書を確認できます。DTLSトンネルが正常に構築されたかどうかをPCAPから確認します。

DTLSデバッグをAPおよびWLCで実行すると、証明書の問題を理解できます。
LSCを使用したAP有線802.1X認証
APは、同じLSC証明書を使用して自身を認証するように設定されています。APは802.1Xサプリカントとして機能し、スイッチによってISEサーバに対して認証されます。ISEサーバはバックエンドのADと通信します。
注:APのアップリンクスイッチポートでdot1x認証を有効にすると、認証が通過するまで、APではトラフィックの送受信ができなくなります。認証に失敗したAPを回復してAPにアクセスするには、AP有線スイッチポートでdot1x authを無効にします。
EAP-TLS認証のワークフローとメッセージ交換
AP有線802.1x認証の設定手順
- CAPWAP DTLSとともにdot1xポート認証を有効にし、EAPタイプを選択します。
- APのdot1xクレデンシャルを作成します。
- スイッチポートでdot1xを有効にします。
- 信頼できる証明書をRADIUSサーバにインストールします。
APの有線802.1x認証GUI設定
- AP加入プロファイルに移動し、プロファイルをクリックします。
- AP > Generalの順にクリックします。「CAPWAP DTLS + dot1x port auth」としてEAPタイプおよびAP認証タイプを選択します。
- Management > Credentialsの順に移動し、AP dot1x authのユーザ名とパスワードを作成します。


APの有線802.1x認証のCLI設定
CLIからAPに対してdot1xを有効にするには、次のコマンドを使用します。これにより、特定の参加プロファイルを使用しているAPに対してのみ有線認証が有効になります。
#ap profile ap-auth
#dot1x eap-type eap-tls
#dot1x lsc-ap-auth-state both
#dot1x username ap-wired-user password 0 cisco!123

AP有線802.1x認証スイッチの設定
このスイッチ設定は、ラボでAP有線認証を有効にするために使用されます。設計に基づいて異なる設定を行うことができます。
aaa new-model
dot1x system-auth-control
aaa authentication dot1x default group radius
aaa authorization network default group radius
radius server ISE
address ipv4 10.106.34.170 auth-port 1812 acct-port 1813
key cisco!123
!
interface GigabitEthernet1/0/2
description "AP-UPLINK-PORT-AUTH-ENABLED"
switchport access vlan 101
switchport mode access
authentication host-mode multi-host
authentication order dot1x
authentication priority dot1x
authentication port-control auto
dot1x pae authenticator
end
RADIUSサーバ証明書のインストール
認証は、(サプリカントとして機能している)APとRADIUSサーバの間で行われます。両方が互いの証明書を信頼する必要があります。APにRADIUSサーバ証明書を信頼させる唯一の方法は、AP証明書を発行したSCEP CAによって発行された証明書もRADIUSサーバで使用させることです。
ISEで、Administration > Certificates > Generate Certificate Signing Requestsの順に選択します。
CSRを生成し、ISEノードの情報をフィールドに入力します。

生成されたテキストは、エクスポートしたり、テキストとしてコピー&ペーストしたりできます。
Windows CAのIPアドレスに移動し、URLに/certsrv/を追加します
Request a certificateをクリックします

Submit a certificate request by using a base-64をク....ックします

テキストボックスにCSRテキストを貼り付けます。Webサーバ証明書テンプレートを選択します。

次に、Certificate Signing Requestメニューに戻ってBind certificateをクリックすることにより、この証明書をISEにインストールできます。その後、Windows Cから取得した証明書をアップロードできます。

AP有線802.1x認証の検証
APへのコンソールアクセスを行い、次のコマンドを実行します。
#show ap authentication status
Ap認証が有効になっていない:

ap authを有効にした後のAPからのコンソールログ:

APが正常に認証されました。

WLCの検証:

認証に成功した後のswitchportインターフェイスのステータス:

次に、認証の成功を示すAPコンソールログの例を示します。
[*09/26/2023 07:33:57.5512] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.5513] hostapd:EAP: Status notification: started (param=)
[*09/26/2023 07:33:57.5513] hostapd:EAP: EAP-Request Identity
[*09/26/2023 07:33:57.5633] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.5634] hostapd:EAP: Status notification: accept proposed method (param=TLS)
[*09/26/2023 07:33:57.5673] hostapd:dot1x: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 13 (TLS) selected
[*09/26/2023 07:33:57.5907] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.5977] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.6045] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.6126] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.6137] hostapd:dot1x: CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/DC=com/DC=tac-lab/DC=sumans/CN=sumans-lab-ca' hash=50db86650becf451eae2c31219ea08df9eda102c79b3e62fb6edf6842ee86db6
[*09/26/2023 07:33:57.6145] hostapd:dot1x: CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=IN/ST=KA/L=BLR/O=CISCO/OU=TAC/CN=HTTS-ISE.htts-lab.local' hash=12bec6b738741d79a218c098553ff097683fe1a9a76a7996c3f799d0c184ae5e
[*09/26/2023 07:33:57.6151] hostapd:EAP: Status notification: remote certificate verification (param=success)
[*09/26/2023 07:33:57.6539] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.6601] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.6773] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.7812] hostapd:dot1x: RX EAPOL from 40:f0:78:00:a1:02
[*09/26/2023 07:33:57.7812] hostapd:EAP: Status notification: completion (param=success)
[*09/26/2023 07:33:57.7812] hostapd:dot1x: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
[*09/26/2023 07:33:57.7813] hostapd:dot1x: State: ASSOCIATED -> COMPLETED
[*09/26/2023 07:33:57.7813] hostapd:dot1x: CTRL-EVENT-CONNECTED - Connection to 01:80:c2:00:00:03 completed [id=0 id_str=]
802.1X認証のトラブルシューティング
APアップリンクでPCAPを取得し、RADIUS認証を確認します。正常な認証のスニペットを次に示します。

TCPdumpは、認証をキャプチャするISEから収集します。

認証中に問題が確認された場合は、APの有線アップリンクとISE側からの同時パケットキャプチャが必要になります。
APのdebugコマンド:
#debug ap authentication packet
関連情報