Microsoft Intune での SCEP 証明書プロファイルのデバイスから NDES サーバーへの通信のトラブルシューティング
次の情報を使用して、Intune Simple Certificate Enrollment Protocol (SCEP) 証明書プロファイルを受信して処理したデバイスが、ネットワーク デバイス登録サービス (NDES) に正常に接続してチャレンジを提示できるかどうかを判断します。 デバイスで秘密キーが生成され、証明書署名要求 (CSR) とチャレンジがデバイスから NDES サーバーに渡されます。 NDES サーバーに接続するために、デバイスは SCEP 証明書プロファイルの URI を使用します。
この記事では、 SCEP 通信フローの概要の手順 2 を参照します。
デバイスからの接続の IIS ログを確認する
インターネット インフォメーション サービス (IIS) ログ ファイルには、すべてのプラットフォームで同じ種類のエントリが含まれています。
NDES サーバーで、次のフォルダーにある最新の IIS ログ ファイルを開きます。 %SystemDrive%\inetpub\logs\logfiles\w3svc1
次の例のようなエントリをログで検索します。 どちらの例にも、 200 という状態が含まれています。これは末尾付近に表示されます。
fe80::f53d:89b8:c3e8:5fec%13 GET /certsrv/mscep/mscep.dll/pkiclient.exe operation=GetCACaps&message=default 80 - fe80::f53d:89b8:c3e8:5fec%13 Mozilla/4.0+(compatible;+Win32;+NDES+client) - 200 0 0 186 0.
および
fe80::f53d:89b8:c3e8:5fec%13 GET /certsrv/mscep/mscep.dll/pkiclient.exe operation=GetCACert&message=default 80 - fe80::f53d:89b8:c3e8:5fec%13 Mozilla/4.0+(compatible;+Win32;+NDES+client) - 200 0 0 3567 0
デバイスが IIS に接続すると、mscep.dllの HTTP GET 要求がログに記録されます。
この要求の終わり近くにある状態コードを確認します。
状態コード 200: この状態は、NDES サーバーとの接続が成功したことを示します。
状態コード 500: IIS_IUSRS グループに適切なアクセス許可がない可能性があります。 この記事の後半の状態コード 500 を参照してください。
状態コードが 200 または 500 でない場合:
構成の検証については、この記事で後述する「 SCEP サーバー URL のテストとトラブルシューティング を参照してください。
あまり一般的でないエラー コードについては、「 IIS 7 以降のバージョンの HTTP 状態コード を参照してください。
接続要求がまったくログに記録されない場合は、デバイスと NDES サーバーの間のネットワークで、デバイスからの連絡先がブロックされている可能性があります。
NDES への接続についてデバイス ログを確認する
Android デバイス
devices OMADM ログを確認します。 次の例のようなエントリを探します。このエントリは、デバイスが NDES に接続したときにログに記録されます。
2018-02-27T05:16:08.2500000 VERB Event com.microsoft.omadm.platforms.android.certmgr.CertificateEnrollmentManager 18327 10 There are 1 requests
2018-02-27T05:16:08.2500000 VERB Event com.microsoft.omadm.platforms.android.certmgr.CertificateEnrollmentManager 18327 10 Trying to enroll certificate request: ModelName=AC_51bad41f-3854-4eb5-a2f2-0f7a94034ee8%2FLogicalName_39907e78_e61b_4730_b9fa_d44a53e4111c;Hash=1677525787
2018-02-27T05:16:09.5530000 VERB Event org.jscep.transport.UrlConnectionGetTransport 18327 10 Sending GetCACaps(ca) to https://<server>.msappproxy.net/certsrv/mscep/mscep.dll?operation=GetCACaps&message=ca
2018-02-27T05:16:14.6440000 VERB Event org.jscep.transport.UrlConnectionGetTransport 18327 10 Received '200 OK' when sending GetCACaps(ca) to https://<server>.msappproxy.net/certsrv/mscep/mscep.dll?operation=GetCACaps&message=ca
2018-02-27T05:16:21.8220000 VERB Event org.jscep.message.PkiMessageEncoder 18327 10 Encoding message: org.jscep.message.PkcsReq@2b06f45f[messageData=org.<server>.pkcs.PKCS10CertificationRequest@699b3cd,messageType=PKCS_REQ,senderNonce=Nonce [D447AE9955E624A56A09D64E2B3AE76E],transId=251E592A777C82996C7CF96F3AAADCF996FC31FF]
2018-02-27T05:16:21.8790000 VERB Event org.jscep.message.PkiMessageEncoder 18327 10 Signing pkiMessage using key belonging to [dn=CN=<uesrname>; serial=1]
2018-02-27T05:16:21.9580000 VERB Event org.jscep.transaction.EnrollmentTransaction 18327 10 Sending org.<server>.cms.CMSSignedData@ad57775
キー エントリには、次のサンプル テキスト文字列が含まれます。
- 1 つの要求があります
- GetCACaps(ca) を送信するときに '200 OK' を受信しました
https://<server>.msappproxy.net/certsrv/mscep/mscep.dll?operation=GetCACaps&message=ca
- [dn=CN=<username>; serial=1] に属するキーを使用して pkiMessage に署名する
接続は IIS によって NDES サーバーの %SystemDrive%\inetpub\logs\LogFiles\W3SVC1\ フォルダーにも記録されます。 次に例を示します。
fe80::f53d:89b8:c3e8:5fec%13 GET /certsrv/mscep/mscep.dll operation=GetCACert&message=ca 443 -
fe80::f53d:89b8:c3e8:5fec%13 Dalvik/2.1.0+(Linux;+U;+Android+5.0;+P01M+Build/LRX21V) - 200 0 0 3909 0
fe80::f53d:89b8:c3e8:5fec%13 GET /certsrv/mscep/mscep.dll operation=GetCACaps&message=ca 443 -
fe80::f53d:89b8:c3e8:5fec%13 Dalvik/2.1.0+(Linux;+U;+Android+5.0;+P01M+Build/LRX21V) - 200 0 0 421
iOS/iPadOS デバイス
devices デバッグ ログを確認します。 次の例のようなエントリを探します。このエントリは、デバイスが NDES に接続したときにログに記録されます。
debug 18:30:53.691033 -0500 profiled Performing synchronous URL request: https://<server>-contoso.msappproxy.net/certsrv/mscep/mscep.dll?operation=GetCACert&message=SCEP%20Authority\
debug 18:30:54.640644 -0500 profiled Performing synchronous URL request: https://<server>-contoso.msappproxy.net/certsrv/mscep/mscep.dll?operation=GetCACaps&message=SCEP%20Authority\
default 18:30:55.483977 -0500 profiled Attempting to retrieve issued certificate...\
debug 18:30:55.487798 -0500 profiled Sending CSR via GET.\
debug 18:30:55.487908 -0500 profiled Performing synchronous URL request: https://<server>-contoso.msappproxy.net/certsrv/mscep/mscep.dll?operation=PKIOperation&message=MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwGggCSABIIZfzCABgkqhkiG9w0BBwOggDCAAgEAMYIBgjCCAX4CAQAwZjBPMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxHDAaBgoJkiaJk/IsZAEZFgxmb3VydGhjb2ZmZWUxGDAWBgNVBAMTD0ZvdXJ0aENvZmZlZSBDQQITaAAAAAmaneVjEPlcTwAAAAAACTANBgkqhkiG9w0BAQEFAASCAQCqfsOYpuBToerQLkw/tl4tH9E+97TBTjGQN9NCjSgb78fF6edY0pNDU+PH4RB356wv3rfZi5IiNrVu5Od4k6uK4w0582ZM2n8NJFRY7KWSNHsmTIWlo/Vcr4laAtq5rw+CygaYcefptcaamkjdLj07e/Uk4KsetGo7ztPVjSEFwfRIfKv474dLDmPqp0ZwEWRQGZwmPoqFMbX3g85CJT8khPaqFW05yGDTPSX9YpuEE0Bmtht9EwOpOZe6O7sd77IhfFZVmHmwy5mIYN7K6mpx/4Cb5zcNmY3wmTBlKEkDQpZDRf5PpVQ3bmQ3we9XxeK1S4UsAXHVdYGD+bg/bCafMIAGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI5D5J2lwZS5OggASCF6jSG9iZA/EJ93fEvZYLV0v7GVo3JAsR11O7DlmkIqvkAg5iC6DQvXO1j88T/MS3wV+rqUbEhktr8Xyf4sAAPI4M6HMfVENCJTStJw1PzaGwUJHEasq39793nw4k268UV5XHXvzZoF3Os2OxUHSfHECOj
キー エントリには、次のサンプル テキスト文字列が含まれます。
- operation=GetCACert
- 発行された証明書を取得しようとしています
- GET を使用した CSR の送信
- operation=PKIOperation
Windows デバイス
NDES への接続を確立している Windows デバイスでは、Windows イベント ビューアーデバイスを表示し、正常な接続の兆候を探すことができます。 接続は、デバイス DeviceManagement-Enterprise-Diagnostics-Provide>Admin ログにイベント ID 36として記録されます。
ログを開くには:
デバイスで、eventvwr.msc を実行して Windows イベント ビューアーを開きます。
Applications and Services Logs>Microsoft>Windows>DeviceManagement-Enterprise-Diagnostic-Provider>Admin を展開します。
次の例のようなイベント 36 を探します。キー行は SCEP: 証明書要求が正常に生成されました。
Event ID: 36 Task Category: None Level: Information Keywords: User: <UserSid> Computer: <Computer Name> Description: SCEP: Certificate request generated successfully. Enhanced Key Usage: (1.3.6.1.5.5.7.3.2), NDES URL: (https://<server>/certsrv/mscep/mscep.dll/pkiclient.exe), Container Name: (), KSP Setting: (0x2), Store Location: (0x1).
状態コード 500 のトラブルシューティング
状態コードが 500 の次の例のような接続は、 認証後にクライアントを偽装 ユーザー権限が NDES サーバー上のIIS_IUSRS グループに割り当てられていないことを示します。 500のステータス値が最後に表示されます。
2017-08-08 20:22:16 IP_address GET /certsrv/mscep/mscep.dll operation=GetCACert&message=SCEP%20Authority 443 - 10.5.14.22 profiled/1.0+CFNetwork/811.5.4+Darwin/16.6.0 - 500 0 1346 31
この問題を解決するには、次の手順を実行します。
- NDES サーバーで、 secpol.msc を実行してローカル セキュリティ ポリシーを開きます。
- [ローカル ポリシー] を展開し、[ユーザー権利の割り当て]選択。
- 右側のウィンドウで 認証後にクライアントを偽装 ダブルクリックします。
- ユーザーまたはグループの追加...を選択し、ボックスに「IIS_IUSRS」と入力しオブジェクト名を入力して、OKを選択します。
- [OK] を選択します。
- コンピューターを再起動し、デバイスからの接続をもう一度試します。
SCEP サーバー URL のテストとトラブルシューティング
SCEP 証明書プロファイルで指定されている URL をテストするには、次の手順を使用します。
Intune で SCEP 証明書プロファイルを編集し、サーバー URL をコピーします。 URL は
https://contoso.com/certsrv/mscep/mscep.dll
のようになります。Web ブラウザーを開き、その SCEP サーバーの URL を参照します。 結果は次のようになります: HTTP エラー 403.0 – 禁止。 この結果は、URL が正しく機能していることを示します。
そのエラーが表示されない場合は、表示されるエラーに似たリンクを選択して、問題固有のガイダンスを表示します。
一般的な NDES メッセージ
SCEP サーバー URL を参照すると、次のネットワーク デバイス登録サービス メッセージが表示されます。
原因: この問題は通常、Microsoft Intune コネクタのインストールに関する問題です。
Mscep.dllは、受信要求をインターセプトし、HTTP 403 エラーが正しくインストールされている場合に表示する ISAPI 拡張機能です。
解決策: SetupMsi.log ファイルを調べて、Microsoft Intune コネクタが正常にインストールされているかどうかを確認します。 次の例では、 インストールが正常に完了し インストールの成功またはエラーの状態 : 0 はインストールが成功したことを示しています。
MSI (c) (28:54) [16:13:11:905]: Product: Microsoft Intune Connector -- Installation completed successfully. MSI (c) (28:54) [16:13:11:999]: Windows Installer installed the product. Product Name: Microsoft Intune Connector. Product Version: 6.1711.4.0. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 0.
インストールに失敗した場合は、Microsoft Intune コネクタを削除してから再インストールします。 インストールが成功し、引き続き General NDES メッセージが表示される場合は、 iisreset コマンドを実行して IIS を再起動します。
HTTP エラー 503
SCEP サーバー URL を参照すると、次のエラーが表示されます。
この問題は、通常、IIS の SCEP アプリケーション プールが開始されていないことが原因です。 NDES サーバーで、IIS マネージャーを開きアプリケーション プールに移動します。 SCEP アプリケーション プールを見つけて、開始されたことを確認します。
SCEP アプリケーション プールが開始されていない場合は、サーバー上のアプリケーション イベント ログを確認します。
デバイスで eventvwr.msc を実行してイベント ビューアーを開き、Windows Logs>Application に移動します。
次の例のようなイベントを探します。つまり、要求を受信するとアプリケーション プールがクラッシュします。
Log Name: Application Source: Application Error Event ID: 1000 Task Category: Application Crashing Events Level: Error Keywords: Classic Description: Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x5215df96 Faulting module name: ntdll.dll, version: 6.3.9600.18821, time stamp: 0x59ba86db Exception code: 0xc0000005
アプリケーション プールのクラッシュの一般的な原因
原因 1: NDES サーバーの信頼されたルート証明機関の証明書ストアに中間 CA 証明書 (自己署名されていない) があります。
解決策: 信頼されたルート証明機関の証明書ストアから中間証明書を削除し、NDES サーバーを再起動します。
信頼されたルート証明機関証明書ストア内のすべての中間証明書を識別するには、次の PowerShell コマンドレットを実行します。
Get-Childitem -Path cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject}
同じと値によって取得される証明書は、ルート証明書です。 それ以外の場合は中間証明書です。
証明書を削除してサーバーを再起動した後、PowerShell コマンドレットをもう一度実行して、中間証明書がないことを確認します。 ある場合は、グループ ポリシーが中間証明書を NDES サーバーにプッシュするかどうかを確認します。 その場合は、グループ ポリシーから NDES サーバーを除外し、中間証明書をもう一度削除します。
原因 2: Intune 証明書コネクタで使用されている証明書に対して、証明書失効リスト (CRL) の URL がブロックされているか到達できません。
解決策: 追加のログ記録を有効にして、詳細情報を収集します。
- イベント ビューアー開き、Viewを選択し、Show Analytic and Debug Logs オプションがオンになっていることを確認します。
- Applications and Services Logs>Microsoft>Windows>CAPI2>Operationalに移動し、Operationalを右クリックして、[ログの作成]を選択します。
- CAPI2 ログが有効になった後、問題を再現し、イベント ログを調べて問題のトラブルシューティングを行います。
原因 3: CertificateRegistrationSvc の IIS アクセス許可で Windows 認証 が有効になっています。
解決策: Anonymous 認証を有効にしてWindows 認証無効にしてから、NDES サーバーを再起動します。
原因 4: NDESPolicy モジュール証明書の有効期限が切れています。
CAPI2 ログ (原因 2 の解決策を参照) には、証明書の有効期間外である
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprint
によって参照される証明書に関連するエラーが表示されます。解決策: 証明書を更新し、コネクタを再インストールします。
certlm.msc
を使用してローカル コンピューターの証明書ストアを開き、Personal を展開して、Certificates を選択します。証明書の一覧で、次の条件を満たす期限切れの証明書を見つけます。
- Intended Purposes の値は Client Authentication です。
- Issued To または Common Name の値は、NDES サーバー名と一致します。
Note
クライアント認証拡張キー使用法 (EKU) が必要です。 この EKU がない場合、CertificateRegistrationSvc は NDESPlugin 要求に対する HTTP 403 応答を返します。 この応答は IIS ログに記録されます。
証明書をダブルクリックする Certificate ダイアログ ボックスで、Details タブを選択し、Thumbprint フィールドを見つけて、値が
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprint
レジストリ サブキーの値と一致していることを確認します。OK を選択して Certificate ダイアログ ボックスを閉じます。
証明書を右クリックし、 [すべてのタスク]を選択し、 [新しいキーを持つ証明書の要求] または [新しいキーを持つ証明書の新規作成] を選択。
Certificate 登録 ページで、Nextを選択し、正しい SSL テンプレートを選択し、 この証明書の登録に必要な情報が必要です。設定を構成するには、ここをクリック。
Certificate プロパティ ダイアログ ボックスで、Subject タブを選択し、次の手順を実行します。
- [ Subject name の Type ドロップダウン ボックスで、[Common Name を選択。 Value ボックスに、NDES サーバーの完全修飾ドメイン名 (FQDN) を入力します。 その後、追加を選択します。
- [ Alternative name の Type ドロップダウン ボックスで、 DNS を選択します。 Value ボックスに、NDES サーバーの FQDN を入力します。 その後、追加を選択します。
- OK を選択して、Certificate プロパティ ダイアログ ボックスを閉じます。
Enrollを選択し、登録が正常に完了するまで待ってから、Finish を選択します。
Intune Certificate Connector を再インストールして、新しく作成した証明書にリンクします。 詳細については、「 Microsoft Intune用の証明書コネクタのインストール」を参照してください。
証明書コネクタ UI を閉じた後、Intune コネクタ サービスと World Wide Web 発行サービスを再起動します。
GatewayTimeout
SCEP サーバー URL を参照すると、次のエラーが表示されます。
原因: Microsoft Entra アプリケーション プロキシ コネクタ サービスが開始されていません。
解決策: services.mscを実行し、 Microsoft Entra アプリケーション プロキシ コネクタ サービスが実行され、 Startup Type が Automatic に設定されていることを確認します。
HTTP 414 要求 URI が長すぎます
SCEP サーバー URL を参照すると、次のエラーが表示されます。 HTTP 414 Request-URI Too Long
原因: IIS 要求のフィルター処理は、NDES サービスが受信する長い URL (クエリ) をサポートするように構成されていません。 このサポートは、SCEP のインフラストラクチャで使用するために NDES サービスを構成場合に構成されます。
解決策: 長い URL のサポートを構成します。
NDES サーバーで IIS マネージャーを開き、[ 既定の Web サイト>要求のフィルター処理>編集機能の設定 を選択して、 編集要求フィルター設定 ページを開きます。
次の設定を構成します。
- URL の最大長 (バイト) = 65534
- 最大クエリ文字列 (バイト) = 65534
OK を選択してこの構成を保存し、IIS マネージャーを閉じます。
次のレジストリ キーを見つけて、指定された値があることを確認して、この構成を検証します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
次の値は DWORD エントリとして設定されます。
- 名前: MaxFieldLength、10 進値は 65534
- 名前: MaxRequestBytes、10 進値は 65534
NDES サーバーを再起動します。
このページは表示できません
Microsoft Entra アプリケーション プロキシが構成されている。 SCEP サーバー URL を参照すると、次のエラーが表示されます。
This page can't be displayed
原因: この問題は、アプリケーション プロキシ構成で SCEP 外部 URL が正しくない場合に発生します。 この URL の例は
https://contoso.com/certsrv/mscep/mscep.dll
です。解決策: アプリケーション プロキシ構成の SCEP 外部 URL に対して yourtenant.msappproxy.net の既定のドメインを使用します。
500 - Internal server error
SCEP サーバー URL を参照すると、次のエラーが表示されます。
原因 1: NDES サービス アカウントがロックされているか、パスワードの有効期限が切れています。
解決策: アカウントのロックを解除するか、パスワードをリセットします。
原因 2: MSCEP-RA 証明書の有効期限が切れています。
解決策: MSCEP-RA 証明書の有効期限が切れている場合は、NDES ロールを再インストールするか、新しい CEP 暗号化および Exchange 登録エージェント (オフライン要求) 証明書を要求します。
新しい証明書を要求するには、次の手順に従います。
証明機関 (CA) または発行元 CA で、証明書テンプレート MMC を開きます。 ログインしているユーザーと NDES サーバーに、CEP 暗号化および Exchange 登録エージェント (オフライン要求) 証明書テンプレートに対する Read および Enroll アクセス許可があることを確認します。
NDES サーバーで期限切れの証明書を確認し、証明書から Subject 情報をコピーします。
Computer アカウントの証明書 MMC を開きます。
[Personal展開しCertificates右クリックしすべてのタスク>新しい証明書 を選択します。
要求証明書 ページで、CEP 暗号化を選択し、この証明書の登録に必要な情報を選択します。設定を構成するには、ここをクリック。
Certificate プロパティで、Subject タブを選択し、手順 2 で収集した情報を Subject 名入力し、追加を選択してから、OK を選択します。
証明書の登録を完了します。
My ユーザー アカウントの証明書 MMC を開きます。
Exchange 登録エージェント (オフライン要求) 証明書に登録する場合は、ユーザー コンテキストで行う必要があります。 この証明書テンプレートの Subject Type は User に設定されています。
[Personal展開しCertificates右クリックしすべてのタスク>新しい証明書 を選択します。
Request 証明書 ページで、Exchange Enrollment Agent (オフライン要求)を選択し、この証明書の登録に必要な情報を選択します。設定を構成するには、ここをクリック。
Certificate プロパティで、Subject タブを選択し、手順 2 で収集した情報をSubject 名入力し、Add を選択します。
[ キー タブを選択し、 Make 秘密キーをエクスポート可能を選択してから、 OKを選択します。
証明書の登録を完了します。
現在のユーザー証明書ストアから Exchange 登録エージェント (オフライン要求) 証明書をエクスポートします。 証明書のエクスポート ウィザードで、 Yes を選択し、秘密キーをエクスポートします。
ローカル コンピューターの証明書ストアに証明書をインポートします。
証明書 MMC で、新しい証明書ごとに次の操作を行います。
証明書を右クリックし、[すべてのタスク >管理秘密キーを選択し、Read アクセス許可を NDES サービス アカウントに追加します。
iisresetコマンドを実行して IIS を再起動します。
次のステップ
デバイスが証明書要求を提示するために NDES サーバーに正常に到達した場合、次の手順では、 Intune Certificate Connectors ポリシー モジュールを確認します。