次の方法で共有


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

次の情報を使用して、Intune簡易証明書登録プロトコル (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.

    And

    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 デバイス

デバイス 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 デバイス

デバイスの デバッグ ログを確認します。 次の例のようなエントリを探します。これは、デバイスが 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 イベント ビューアーデバイスを表示し、正常な接続の兆候を探すことができます。 Connectionsは、デバイス DeviceManagement-Enterprise-Diagnostics-Provide>管理 ログにイベント ID 36 として記録されます。

ログを開くには:

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

  2. [アプリケーションとサービス ログ>] [Microsoft>Windows>DeviceManagement-Enterprise-Diagnostic-Provider管理] を展開します>。

  3. SCEP: 証明書要求が正常に生成されたキー行を使用して、次の例のようなイベント 36 を探します。

    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 のトラブルシューティング

次の例のようなConnections、状態コードが 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 ログアプリケーションに移動します>。

  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: 証明書失効リスト (CRL) の URL は、Intune証明書コネクタによって使用される証明書に対してブロックされているか、到達できません。

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

    1. イベント ビューアー開き、[表示] を選択し、[分析ログとデバッグ ログの表示] オプションがオンになっていることを確認します。
    2. [アプリケーションとサービス ログ>] Microsoft>Windows>CAPI2>[運用] に移動し、[運用] を右クリックし、[ログの有効化] を選択します。
    3. CAPI2 ログが有効になった後、問題を再現し、イベント ログを調べて問題のトラブルシューティングを行います。
  • 原因 3: CertificateRegistrationSvc の IIS アクセス許可で Windows 認証 が有効になっています。

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

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

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

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

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

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

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

      • [目的] の値は [クライアント認証] です
      • [発行先] または [共通名] の値は、NDES サーバー名と一致します。

      注:

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

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

    4. [ OK] を選択 して [ 証明書 ] ダイアログ ボックスを閉じます。

    5. 証明書を右クリックし、[ すべてのタスク] を選択し、[ 新しいキーを使用して証明書を要求 する] または [新 しいキーを使用して証明書を更新する] を選択します。

    6. [ 証明書の登録 ] ページで、[ 次へ] を選択し、正しい SSL テンプレートを選択し、[ この証明書の登録に詳細情報が必要です] を選択します。ここをクリックして設定を構成します

    7. [ 証明書のプロパティ ] ダイアログ ボックスで、[ サブジェクト ] タブを選択し、次の手順を実行します。

      1. [ サブジェクト名] の [ 種類 ] ドロップダウン ボックスで、[ 共通名] を選択します。 [ ] ボックスに、NDES サーバーの完全修飾ドメイン名 (FQDN) を入力します。 次に [追加] を選択します。
      2. [ 別名] の [ 種類 ] ドロップダウン ボックスで、[DNS] を選択 します。 [ ] ボックスに、NDES サーバーの FQDN を入力します。 次に [追加] を選択します。
      3. [ OK] を選択 して、[ 証明書のプロパティ ] ダイアログ ボックスを閉じます。
    8. [ 登録] を選択し、登録が正常に完了するまで待ってから、[完了] を選択 します

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

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

GatewayTimeout

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

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

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

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

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 エントリとして設定されます。

      • 名前: 10 進値が 65534MaxFieldLength
      • 名前: 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 登録エージェント (オフライン要求) 証明書テンプレートに対する 読み取り および 登録 のアクセス許可があることを確認します。

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

    3. [コンピューター用の証明書 MMC ] アカウントを開きます。

    4. [個人用] を展開し、[証明書] を右クリックし、[すべてのタスク]> [新しい証明書の要求] を選択します。

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

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

    6. [証明書のプロパティ] で [サブジェクト] タブを選択し、手順 2 で収集した情報を [サブジェクト名] に入力し、[追加] を選択し、[OK] を選択します

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

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

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

    9. [個人用] を展開し、[証明書] を右クリックし、[すべてのタスク]> [新しい証明書の要求] を選択します。

    10. [ 証明書の要求 ] ページで、[ Exchange 登録エージェント (オフライン要求)] を選択し、[ この証明書の登録に詳細情報が必要です] を選択します。ここをクリックして設定を構成します

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

    11. [証明書のプロパティ] で[サブジェクト] タブを選択し、手順 2 で収集した情報をサブジェクト名に入力し、[追加] を選択します。

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

      [ 秘密キー ] タブを選択し、[ 秘密キーをエクスポート可能にする] を選択し、[ OK] を選択します

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

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

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

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

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

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

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

次の手順

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