应用对象
Exchange Server 2013 Enterprise Edition Exchange Server 2013 Standard Edition Exchange Server 2016 Standard Edition Exchange Server 2016 Enterprise Edition Exchange Server 2019

症状

请考虑以下情况:

  • 在 Exchange Server 环境中,Outlook Web App 或 Exchange 控制面板 (ECP) 网站配置为使用基于表单的身份验证 (FBA) 。

  • 用户输入有效的邮箱用户名和密码。

当用户在此方案中Outlook Web App或 ECP 时,将重定向到 FBA 页面。 没有错误消息。 此外,在 HttpProxy\Owa 日志中,"/owa"的条目显示"CorrelationID=<空>;已针对失败的请求返回 NoCookies=302"。 在日志的前面,"/owa/auth.owa"的条目指示用户已成功进行身份验证。

原因

如果网站由证书保护,而该证书使用密钥 存储 提供程序 (KSP) 通过加密下一代 CNG (KSP) 来存储其私钥) 。 Exchange Server CNG/KSP 证书来保护 Outlook Web App ECP。 必须改为使用 (CSP) 提供程序。 可以从托管受影响网站的服务器确定私钥是否存储在 KSP 中。 如果证书文件包含 pfx、p12 (私钥,也可以验证) 。

如何使用 CertUtil 确定私钥存储

如果证书已安装在服务器上,请运行以下命令:

certutil -store my <CertificateSerialNumber>如果证书存储在 pfx/p12 文件中,请运行以下命令:  

certutil <CertificateFileName>在任一情况下,有关证书的输出都显示以下内容:  

提供程序 = Microsoft 存储密钥提供程序

解决方法

若要解决此问题,请将证书迁移到 CSP,或者从证书提供程序请求 CSP 证书。注意 如果使用来自其他软件或硬件供应商的 CSP 或 KSP,请联系相关供应商,获得相应说明。 例如,如果使用 Microsoft RSA SChannel 加密提供程序,并且证书未锁定到 KSP 中,则应该这样做。

  1. 备份现有证书,包括私钥。 若要详细了解如何执行此操作,请参阅 Export-ExchangeCertificate

  2. 运行 Get-ExchangeCertificate 命令,确定哪些服务当前绑定到证书。

  3. 运行以下命令,将新证书导入 CSP: certutil -csp "Microsoft RSA SChannel 加密提供程序" -importpfx <CertificateFilename>

  4. 运行Get-ExchangeCertificate,确保证书仍绑定到同一服务。

  5. 重启服务器。

  6. 运行以下命令,验证证书现在是否具有与 CSP 一起存储的私钥: certutil -store my <CertificateSerialNumber>

输出现在应显示以下内容:  

提供程序 = Microsoft RSA SChannel 加密提供程序

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。