針對 intune Microsoft SCEP 憑證配置檔的裝置對 NDES 伺服器通訊進行疑難解答
使用下列資訊來判斷接收和處理 Intune 簡單憑證註冊通訊協定 (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 裝置
檢閱 裝置 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 事件檢視器 裝置,並尋找成功連線的指示。 聯機會記錄為 DeviceManagement-Enterprise-Diagnostics-Provide> Admin 記錄裝置中的事件標識碼 36。
若要開啟記錄檔:
在裝置上,執行 eventvwr.msc 以開啟 Windows 事件檢視器。
展開 [應用程式和服務記錄>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,然後選取 [確定]。
- 選取 [確定]。
- 重新啟動計算機,然後再次嘗試從裝置連線。
測試和疑難解答 SCEP 伺服器 URL
使用下列步驟來測試 SCEP 憑證配置檔中指定的 URL。
在 Intune 中,編輯您的 SCEP 憑證設定檔,並複製伺服器 URL。 URL 應該類似
https://contoso.com/certsrv/mscep/mscep.dll
。開啟網頁瀏覽器,然後流覽至該 SCEP 伺服器 URL。 結果應該是: HTTP 錯誤 403.0 – 禁止。 此結果表示 URL 正常運作。
如果您沒有收到該錯誤,請選取類似您看到之錯誤的連結,以檢視問題特定指引:
一般 NDES 訊息
當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列網路裝置註冊服務訊息:
原因:此問題通常是Microsoft Intune 連接器安裝的問題。
Mscep.dll是 ISAPI 擴充功能,會攔截連入要求,並在正確安裝時顯示 HTTP 403 錯誤。
解決方案:檢查 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 連接器,然後重新安裝。 如果安裝成功,而且您繼續收到一般 NDES 訊息,請執行 iisreset 命令以重新啟動 IIS。
HTTP 錯誤 503
當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列錯誤:
此問題通常是因為 IIS 中的 SCEP 應用程式集區未啟動。 在 NDES 伺服器上,開啟 [IIS 管理員 ],然後移至 [應用程式集區]。 找出 SCEP 應用程式集區,並確認它已啟動。
如果未啟動 SCEP 應用程式集區,請檢查伺服器上的應用程式事件記錄檔:
在裝置上,執行 eventvwr.msc 以開啟 事件檢視器 並移至 Windows Logs> 應用程式。
尋找類似下列範例的事件,這表示收到要求時應用程式集區當機:
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 Cmdlet:
Get-Childitem -Path cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject}
具有相同發行和發行值之憑證是跟證書。 否則,它是中繼憑證。
拿掉憑證並重新啟動伺服器之後,請再次執行 PowerShell Cmdlet 以確認沒有中繼憑證。 如果有,請檢查組策略是否會將中繼憑證推送至 NDES 伺服器。 如果是,請從組策略中排除 NDES 伺服器,然後再次移除中繼憑證。
原因 2:憑證吊銷清單 (CRL) 中的 URL 已封鎖或無法連線到 Intune 憑證連接器所使用的憑證。
解決方案:啟用其他記錄以收集詳細資訊:
- 開啟 事件檢視器,選取 [檢視],確定已核取 [顯示分析和偵錯記錄] 選項。
- 移至 [應用程式和服務記錄>] Microsoft>[Windows>CAPI2>作業],以滑鼠右鍵單擊 [作業],然後選取 [啟用記錄]。
- 啟用CAPI2記錄之後,請重現問題,並檢查事件記錄檔以針對問題進行疑難解答。
原因 3:CertificateRegistrationSvc 上的 IIS 許可權已啟用 Windows 驗證。
解決方案:啟用 匿名驗證 並停用 Windows 驗證,然後重新啟動 NDES 伺服器。
原因 4:NDESPolicy 模組憑證已過期。
CAPI2 記錄檔(請參閱原因 2 的解決方案)會顯示與憑證有效期間外部所參考
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprint
憑證相關的錯誤。解決方案:更新憑證並重新安裝連接器。
使用
certlm.msc
開啟本機計算機證書存儲,展開 [個人],然後選取 [ 憑證]。在憑證清單中,尋找符合下列條件的過期憑證:
- 預期用途的值是客戶端驗證。
- [發行至] 或 [一般名稱] 的值符合 NDES 伺服器名稱。
注意
需要客戶端驗證擴充金鑰使用方式 (EKU)。 如果沒有此 EKU,CertificateRegistrationSvc 會傳回對 NDESPlugin 要求的 HTTP 403 回應。 此回應將會記錄在 IIS 記錄中。
按兩下憑證。 在 [ 憑證 ] 對話框中,選取 [詳細數據 ] 索引卷標,找出 [指紋 ] 欄位,然後確認值符合登錄子機碼的值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\Modules\NDESPolicy\NDESCertThumbprint
。選取 [ 確定 ] 以關閉 [ 憑證 ] 對話框。
以滑鼠右鍵按下憑證,選取 [所有工作],然後選取 [使用新金鑰要求憑證] 或 [以新密鑰更新憑證]。
在 [ 憑證註冊 ] 頁面中,選取 [下一步],選取正確的 SSL 範本,然後選取 [需要更多資訊才能註冊此憑證]。按兩下這裡以設定設定。
在 [ 憑證屬性 ] 對話框中,選取 [ 主體] 索引卷 標,然後執行下列步驟:
- 在 [主體名稱] 底下的 [類型] 下拉式方塊中,選取 [一般名稱]。 在 [ 值] 方塊中,輸入 NDES 伺服器的完整功能變數名稱 (FQDN)。 然後選取 [新增]。
- 在 [替代名稱] 底下的 [類型] 下拉式方塊中,選取 [DNS]。 在 [ 值] 方塊中,輸入 NDES 伺服器的 FQDN。 然後選取 [新增]。
- 選取 [ 確定 ] 以關閉 [ 憑證屬性 ] 對話框。
選取 [ 註冊],等待註冊成功完成,然後選取 [ 完成]。
重新安裝 Intune 憑證連接器,將它連結到新建立的憑證。 如需詳細資訊,請參閱 安裝 Microsoft Intune 的憑證連接器。
關閉憑證連接器 UI 之後,請重新啟動 Intune 連接器服務和萬維網發佈服務。
GatewayTimeout
當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列錯誤:
原因: 未啟動Microsoft Entra 應用程式 Proxy 連接器 服務。
解決方案:執行 services.msc,然後確定 Microsoft Entra 應用程式 Proxy 連接器 服務正在執行,且 啟動類型 設定為 [自動]。
HTTP 414 要求 URI 太長
當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列錯誤: HTTP 414 Request-URI Too Long
原因:IIS 要求篩選未設定為支援 NDES 服務收到的長 URL(查詢)。 當您 設定 NDES 服務 以搭配 SCEP 的基礎結構使用時,即會設定此支援。
解決方案:設定長URL的支援。
在 NDES 伺服器上,開啟 IIS 管理員,選取 [預設網站>要求篩選>編輯功能設定] 以開啟 [編輯要求篩選設定] 頁面。
設定下列設定:
- URL 長度上限 (位元元) = 65534
- 查詢字串上限 (位元元組) = 65534
選取 [ 確定 ] 以儲存此設定並關閉 IIS 管理員。
藉由尋找下列登錄機碼來確認其具有指示的值,以驗證此組態:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
下列值會設定為 DWORD 專案:
- 名稱: MaxFieldLength,十進位值為 65534
- 名稱: MaxRequestBytes,十進位值為 65534
重新啟動 NDES 伺服器。
此頁面無法顯示
您已設定Microsoft Entra 應用程式 Proxy。 當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列錯誤:
This page can't be displayed
原因:當 SCEP 外部 URL 在 應用程式 Proxy 組態中不正確時,就會發生此問題。 此 URL 的範例是
https://contoso.com/certsrv/mscep/mscep.dll
。解決方案:在 應用程式 Proxy 組態中使用 SCEP 外部 URL 的預設網域 yourtenant.msappproxy.net。
500 - 內部伺服器錯誤
當您瀏覽至 SCEP 伺服器 URL 時,您會收到下列錯誤:
原因 1:NDES 服務帳戶已鎖定或其密碼已過期。
解決方案:解除鎖定帳戶或重設密碼。
原因 2:MSCEP-RA 憑證已過期。
解決方案:如果 MSCEP-RA 憑證已過期,請重新安裝 NDES 角色,或要求新的 CEP 加密和 Exchange 註冊代理程式 (離線要求) 憑證。
若要要求新的憑證,請遵循下列步驟:
在證書頒發機構單位 (CA) 或發行 CA 上,開啟證書範本 MMC。 請確定登入的使用者和 NDES 伺服器具有 CEP 加密和 Exchange 註冊代理程式 (離線要求) 憑證範本的讀取 和 註冊 許可權。
檢查 NDES 伺服器上的過期憑證,從憑證複製 主體 資訊。
開啟電腦帳戶的憑證 MMC。
展開 [個人],以滑鼠右鍵按兩下 [憑證],然後選取 [所有工作>要求新憑證]。
在 [ 要求憑證] 頁面上,選取 [CEP 加密],然後選取 [需要更多資訊才能註冊此憑證]。按兩下這裡以設定設定。
在 [憑證內容] 中,選取 [主體] 索引標籤,以您在步驟 2 期間收集的資訊填入 [主體名稱],選取 [新增],然後選取 [確定]。
完成憑證註冊。
開啟 [我的使用者帳戶的憑證] MMC。
當您註冊 Exchange 註冊代理程式(離線要求)憑證時,必須在用戶內容中完成。 因為此憑證範本的 [主體類型] 設定為 [使用者]。
展開 [個人],以滑鼠右鍵按兩下 [憑證],然後選取 [所有工作>要求新憑證]。
在 [ 要求憑證] 頁面上,選取 [Exchange 註冊代理程式][脫機要求],然後選取 [需要更多資訊才能註冊此憑證]。按兩下這裡以設定設定。
在 [憑證內容] 中,選取 [主體] 索引標籤,以您在步驟 2 期間收集的資訊填入 [主體名稱],選取 [新增]。
選取 [私鑰] 索引標籤,選取 [讓私鑰可匯出],然後選取 [確定]。
完成憑證註冊。
從目前的使用者證書存儲匯出 Exchange 註冊代理程式 (離線要求) 憑證。 在 [憑證導出精靈] 中,選取 [ 是],匯出私鑰。
將憑證匯入本機計算機證書存儲。
在 [憑證] MMC 中,針對每個新憑證執行下列動作:
以滑鼠右鍵按兩下憑證,選取 [所有工作>管理私鑰],將 [讀取] 許可權新增至 NDES 服務帳戶。
執行 iisreset 命令以重新啟動 IIS。
下一步
如果裝置成功連線到 NDES 伺服器以提出憑證要求,下一個步驟是檢閱 Intune 憑證連接器原則模組。