徵兆
請試想下列案例:
-
在Exchange Server環境中,Outlook Web App或Exchange 控制台 (ECP) 網站會被設定為使用 FBA) (表單式驗證。
-
使用者輸入有效的信箱使用者名稱和密碼。
當使用者在此情況下登入 Outlook Web App 或 ECP 時,會被重新導向 FBA 頁面。 沒有錯誤訊息。 此外,在 HttpProxy\Owa 日誌中,「/owa」的條目顯示「CorrelationID=<空>;對於失敗的請求,NoCookies=302“ 被回傳。 日誌前面的「/owa/auth.owa」條目表示使用者已成功認證。
原因
若網站以使用金鑰儲存提供者 (KSP) 作為私鑰儲存的憑證,則可能發生此問題,該憑證透過 Cryptography Next Generation (CNG) 進行私鑰儲存。 Exchange Server 不支援 CNG/KSP 憑證來保護 Outlook Web App 或 ECP。 必須使用加密服務提供者 (CSP) 。 你可以從託管受影響網站的伺服器判斷私鑰是否儲存在 KSP 中。 如果你有包含 pfx 私鑰的憑證檔,也可以驗證,p12) (。
如何使用 CertUtil 來判斷私鑰儲存
如果憑證已安裝在伺服器上,請執行以下指令:
certutil -store my <CertificateSerialNumber>如果憑證儲存在 pfx/p12 檔案中,請執行以下指令:
certutil <憑證檔案名稱>無論哪種情況,該憑證的輸出都會顯示以下內容:
Provider = Microsoft Storage Key Provider
解決方案
要解決這個問題,請將憑證遷移到CSP,或向你的憑證提供者申請CSP憑證。注意:如果您使用其他軟體或硬體廠商的 CSP 或 KSP,請聯繫相關廠商以獲得相關說明。 例如,如果你使用 Microsoft RSA SChannel 加密服務提供者,且憑證未被鎖定在 KSP 中,你應該這麼做。
-
備份你現有的憑證,包括私鑰。 欲了解更多相關資訊,請參閱 Export-ExchangeCertificate。
-
執行 Get-ExchangeCertificate 指令以判斷目前綁定在憑證上的服務。
-
透過執行以下指令將新憑證匯入 CSP: certutil -csp “Microsoft RSA SChannel Cryptographic Provider” -importpfx <CertificateFilename>
-
執行 Get-ExchangeCertificate 確認憑證仍然綁定在相同的服務上。
-
重新啟動伺服器。
-
執行以下指令以驗證憑證是否已將私鑰儲存在 CSP 中: certutil -store my <CertificateSerialNumber>
輸出結果現在應該會顯示以下內容:
Provider = Microsoft RSA SChannel 密碼學提供者