次の方法で共有


Microsoft Intune での SCEP 証明書プロファイルのデバイスから NDES サーバーへの通信のトラブルシューティング

次の情報を使用して、Intune Simple Certificate Enrollment Protocol (SCEP) 証明書プロファイルを受信して処理したデバイスが、ネットワーク デバイス登録サービス (NDES) に正常に接続してチャレンジを提示できるかどうかを判断します。 デバイスで秘密キーが生成され、証明書署名要求 (CSR) とチャレンジがデバイスから NDES サーバーに渡されます。 NDES サーバーに接続するために、デバイスは SCEP 証明書プロファイルの URI を使用します。

この記事では、 SCEP 通信フローの概要の手順 2 を参照します。

デバイスからの接続の IIS ログを確認する

インターネット インフォメーション サービス (IIS) ログ ファイルには、すべてのプラットフォームで同じ種類のエントリが含まれています。

  1. NDES サーバーで、次のフォルダーにある最新の IIS ログ ファイルを開きます。 %SystemDrive%\inetpub\logs\logfiles\w3svc1

  2. 次の例のようなエントリをログで検索します。 どちらの例にも、 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

  3. デバイスが IIS に接続すると、mscep.dllの HTTP GET 要求がログに記録されます。

    この要求の終わり近くにある状態コードを確認します。

    接続要求がまったくログに記録されない場合は、デバイスと 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として記録されます。

ログを開くには:

  1. デバイスで、eventvwr.msc を実行して Windows イベント ビューアーを開きます。

  2. Applications and Services Logs>Microsoft>Windows>DeviceManagement-Enterprise-Diagnostic-Provider>Admin を展開します。

  3. 次の例のようなイベント 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

この問題を解決するには、次の手順を実行します。

  1. NDES サーバーで、 secpol.msc を実行してローカル セキュリティ ポリシーを開きます。
  2. [ローカル ポリシー] を展開し、[ユーザー権利の割り当て]選択
  3. 右側のウィンドウで 認証後にクライアントを偽装 ダブルクリックします。
  4. ユーザーまたはグループの追加...を選択し、ボックスに「IIS_IUSRS」と入力しオブジェクト名を入力して、OKを選択します。
  5. [OK] を選択します。
  6. コンピューターを再起動し、デバイスからの接続をもう一度試します。

SCEP サーバー URL のテストとトラブルシューティング

SCEP 証明書プロファイルで指定されている URL をテストするには、次の手順を使用します。

  1. Intune で SCEP 証明書プロファイルを編集し、サーバー URL をコピーします。 URL は https://contoso.com/certsrv/mscep/mscep.dllのようになります。

  2. 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 を参照すると、次のエラーが表示されます。

HTTP エラー 503 のスクリーンショット。サービスは使用できません。

この問題は、通常、IIS の SCEP アプリケーション プールが開始されていないことが原因です。 NDES サーバーで、IIS マネージャーを開きアプリケーション プールに移動します。 SCEP アプリケーション プールを見つけて、開始されたことを確認します。

SCEP アプリケーション プールが開始されていない場合は、サーバー上のアプリケーション イベント ログを確認します。

  1. デバイスで eventvwr.msc を実行してイベント ビューアーを開き、Windows Logs>Application に移動します。

  2. 次の例のようなイベントを探します。つまり、要求を受信するとアプリケーション プールがクラッシュします。

    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 がブロックされているか到達できません。

    解決策: 追加のログ記録を有効にして、詳細情報を収集します。

    1. イベント ビューアー開き、Viewを選択し、Show Analytic and Debug Logs オプションがオンになっていることを確認します。
    2. Applications and Services Logs>Microsoft>Windows>CAPI2>Operationalに移動し、Operationalを右クリックして、[ログの作成]を選択します。
    3. CAPI2 ログが有効になった後、問題を再現し、イベント ログを調べて問題のトラブルシューティングを行います。
  • 原因 3: CertificateRegistrationSvc の IIS アクセス許可で Windows 認証 が有効になっています。

    解決策: Anonymous 認証を有効にしてWindows 認証無効にしてから、NDES サーバーを再起動します。

    匿名認証と Windows 認証のアクセス許可のスクリーンショット。

  • 原因 4: NDESPolicy モジュール証明書の有効期限が切れています。

    CAPI2 ログ (原因 2 の解決策を参照) には、証明書の有効期間外である HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprint によって参照される証明書に関連するエラーが表示されます。

    解決策: 証明書を更新し、コネクタを再インストールします。

    1. certlm.mscを使用してローカル コンピューターの証明書ストアを開き、Personal を展開して、Certificates を選択します。

    2. 証明書の一覧で、次の条件を満たす期限切れの証明書を見つけます。

      • Intended Purposes の値は Client Authentication です。
      • Issued To または Common Name の値は、NDES サーバー名と一致します。

      Note

      クライアント認証拡張キー使用法 (EKU) が必要です。 この EKU がない場合、CertificateRegistrationSvc は NDESPlugin 要求に対する HTTP 403 応答を返します。 この応答は IIS ログに記録されます。

    3. 証明書をダブルクリックする Certificate ダイアログ ボックスで、Details タブを選択し、Thumbprint フィールドを見つけて、値がHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprintレジストリ サブキーの値と一致していることを確認します。

    4. OK を選択して Certificate ダイアログ ボックスを閉じます。

    5. 証明書を右クリックし、 [すべてのタスク]を選択し、 [新しいキーを持つ証明書の要求] または [新しいキーを持つ証明書の新規作成] を選択

    6. Certificate 登録 ページで、Nextを選択し、正しい SSL テンプレートを選択し、 この証明書の登録に必要な情報が必要です。設定を構成するには、ここをクリック

    7. Certificate プロパティ ダイアログ ボックスで、Subject タブを選択し、次の手順を実行します。

      1. [ Subject nameType ドロップダウン ボックスで、[Common Name を選択Value ボックスに、NDES サーバーの完全修飾ドメイン名 (FQDN) を入力します。 その後、追加を選択します。
      2. [ Alternative nameType ドロップダウン ボックスで、 DNS を選択します。 Value ボックスに、NDES サーバーの FQDN を入力します。 その後、追加を選択します。
      3. OK を選択して、Certificate プロパティ ダイアログ ボックスを閉じます。
    8. Enrollを選択し、登録が正常に完了するまで待ってから、Finish を選択します。

    9. Intune Certificate Connector を再インストールして、新しく作成した証明書にリンクします。 詳細については、「 Microsoft Intune用の証明書コネクタのインストール」を参照してください。

    10. 証明書コネクタ UI を閉じた後、Intune コネクタ サービスと World Wide Web 発行サービスを再起動します。

GatewayTimeout

SCEP サーバー URL を参照すると、次のエラーが表示されます。

Gatewaytimeout エラーのスクリーンショット。

  • 原因: Microsoft Entra アプリケーション プロキシ コネクタ サービスが開始されていません。

    解決策: services.mscを実行し、 Microsoft Entra アプリケーション プロキシ コネクタ サービスが実行され、 Startup TypeAutomatic に設定されていることを確認します。

HTTP 414 要求 URI が長すぎます

SCEP サーバー URL を参照すると、次のエラーが表示されます。 HTTP 414 Request-URI Too Long

  • 原因: IIS 要求のフィルター処理は、NDES サービスが受信する長い URL (クエリ) をサポートするように構成されていません。 このサポートは、SCEP のインフラストラクチャで使用するために NDES サービスを構成場合に構成されます。

  • 解決策: 長い URL のサポートを構成します。

    1. NDES サーバーで IIS マネージャーを開き、[ 既定の Web サイト>要求のフィルター処理>編集機能の設定 を選択して、 編集要求フィルター設定 ページを開きます。

    2. 次の設定を構成します。

      • URL の最大長 (バイト) = 65534
      • 最大クエリ文字列 (バイト) = 65534
    3. OK を選択してこの構成を保存し、IIS マネージャーを閉じます。

    4. 次のレジストリ キーを見つけて、指定された値があることを確認して、この構成を検証します。

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

      次の値は DWORD エントリとして設定されます。

      • 名前: MaxFieldLength、10 進値は 65534
      • 名前: MaxRequestBytes、10 進値は 65534
    5. 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 を参照すると、次のエラーが表示されます。

500 - 内部サーバー エラーのスクリーンショット。

  • 原因 1: NDES サービス アカウントがロックされているか、パスワードの有効期限が切れています。

    解決策: アカウントのロックを解除するか、パスワードをリセットします。

  • 原因 2: MSCEP-RA 証明書の有効期限が切れています。

    解決策: MSCEP-RA 証明書の有効期限が切れている場合は、NDES ロールを再インストールするか、新しい CEP 暗号化および Exchange 登録エージェント (オフライン要求) 証明書を要求します。

    新しい証明書を要求するには、次の手順に従います。

    1. 証明機関 (CA) または発行元 CA で、証明書テンプレート MMC を開きます。 ログインしているユーザーと NDES サーバーに、CEP 暗号化および Exchange 登録エージェント (オフライン要求) 証明書テンプレートに対する Read および Enroll アクセス許可があることを確認します。

    2. NDES サーバーで期限切れの証明書を確認し、証明書から Subject 情報をコピーします。

    3. Computer アカウントの証明書 MMC を開きます

    4. [Personal展開しCertificates右クリックしすべてのタスク>新しい証明書 を選択します。

    5. 要求証明書 ページで、CEP 暗号化を選択し、この証明書の登録に必要な情報を選択します。設定を構成するには、ここをクリック

      [証明書の要求] ページのスクリーンショット。CEP 暗号化が選択されています。

    6. Certificate プロパティで、Subject タブを選択し、手順 2 で収集した情報を Subject 名入力し、追加を選択してから、OK を選択します。

    7. 証明書の登録を完了します。

    8. My ユーザー アカウントの証明書 MMC を開きます

      Exchange 登録エージェント (オフライン要求) 証明書に登録する場合は、ユーザー コンテキストで行う必要があります。 この証明書テンプレートの Subject TypeUser に設定されています。

    9. [Personal展開しCertificates右クリックしすべてのタスク>新しい証明書 を選択します。

    10. Request 証明書 ページで、Exchange Enrollment Agent (オフライン要求)を選択し、この証明書の登録に必要な情報を選択します。設定を構成するには、ここをクリック

      Exchange 登録エージェント (オフライン要求) が選択されている [証明書の要求] ページのスクリーンショット。

    11. Certificate プロパティで、Subject タブを選択し、手順 2 で収集した情報をSubject 名入力し、Add を選択します。

      [証明書のプロパティ] ウィンドウの [サブジェクト] タブのスクリーンショット。

      [ キー タブを選択し、 Make 秘密キーをエクスポート可能を選択してから、 OKを選択します。

      [証明書のプロパティ] ウィンドウの [秘密キー] タブのスクリーンショット。

    12. 証明書の登録を完了します。

    13. 現在のユーザー証明書ストアから Exchange 登録エージェント (オフライン要求) 証明書をエクスポートします。 証明書のエクスポート ウィザードで、 Yes を選択し、秘密キーをエクスポートします

    14. ローカル コンピューターの証明書ストアに証明書をインポートします。

    15. 証明書 MMC で、新しい証明書ごとに次の操作を行います。

      証明書を右クリックし、[すべてのタスク >管理秘密キーを選択し、Read アクセス許可を NDES サービス アカウントに追加します。

    16. iisresetコマンドを実行して IIS を再起動します。

次のステップ

デバイスが証明書要求を提示するために NDES サーバーに正常に到達した場合、次の手順では、 Intune Certificate Connectors ポリシー モジュールを確認します。