Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
In einer Exchange Server-Umgebung ist eine Outlook Web App- oder Exchange Systemsteuerung-Website (ECP) für die Verwendung der formularbasierten Authentifizierung (FBA) konfiguriert.
-
Ein Benutzer gibt einen gültigen Postfachbenutzernamen und ein gültiges Kennwort ein.
Wenn sich der Benutzer in diesem Szenario bei Outlook Web App oder ECP anmeldet, wird er zur Seite FBA umgeleitet. Es gibt keine Fehlermeldung. Darüber hinaus zeigen Einträge für "/owa" im HttpProxy\Owa-Protokoll an, dass "CorrelationID= leere><; NoCookies=302" wurde für die fehlgeschlagenen Anforderungen zurückgegeben. Weiter oben im Protokoll geben Einträge für "/owa/auth.owa" an, dass der Benutzer erfolgreich authentifiziert wurde.
Ursache
Dieses Problem kann auftreten, wenn die Website durch ein Zertifikat geschützt ist, das einen Schlüsselspeicheranbieter (Key Storage Provider, KSP) für die Speicherung privater Schlüssel über Cryptography Next Generation (CNG) verwendet. Exchange Server unterstützt keine CNG/KSP-Zertifikate zum Schützen von Outlook Web App oder ECP. Stattdessen muss ein Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) verwendet werden. Sie können bestimmen, ob der private Schlüssel auf dem Server, der die betroffene Website hostet, im KSP gespeichert wird. Sie können dies auch überprüfen, wenn Sie über die Zertifikatdatei verfügen, die den privaten Schlüssel (pfx, p12) enthält.
Verwenden von CertUtil zum Bestimmen des Privaten Schlüsselspeichers
Wenn das Zertifikat bereits auf dem Server installiert ist, führen Sie den folgenden Befehl aus:
certutil -store my <CertificateSerialNumber>Wenn das Zertifikat in einer pfx/p12-Datei gespeichert ist, führen Sie den folgenden Befehl aus:
certutil <CertificateFileName>In beiden Fällen zeigt die Ausgabe für das betreffende Zertifikat Folgendes an:
Provider = Microsoft Storage Key Provider
Lösung
Um dieses Problem zu beheben, migrieren Sie das Zertifikat zu einem CSP, oder fordern Sie ein CSP-Zertifikat von Ihrem Zertifikatanbieter an.Hinweis Wenn Sie einen CSP oder KSP eines anderen Software- oder Hardwareherstellers verwenden, wenden Sie sich an den entsprechenden Anbieter, um die entsprechenden Anweisungen zu erhalten. Dies sollten Sie beispielsweise tun, wenn Sie einen Microsoft RSA SChannel Cryptographic Provider verwenden und das Zertifikat nicht in einem KSP gesperrt ist.
-
Sichern Sie Ihr vorhandenes Zertifikat, einschließlich des privaten Schlüssels. Weitere Informationen dazu finden Sie unter Export-ExchangeCertificate.
-
Führen Sie den Befehl Get-ExchangeCertificate aus, um zu ermitteln, welche Dienste derzeit an das Zertifikat gebunden sind.
-
Importieren Sie das neue Zertifikat in einen CSP, indem Sie den folgenden Befehl ausführen: certutil -csp "Microsoft RSA SChannel Cryptographic Provider" -importpfx <CertificateFilename>
-
Führen Sie Get-ExchangeCertificate aus, um sicherzustellen, dass das Zertifikat weiterhin an dieselben Dienste gebunden ist.
-
Starten Sie den Server neu.
-
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der private Schlüssel des Zertifikats jetzt mit einem CSP gespeichert ist: certutil -store my <CertificateSerialNumber>
In der Ausgabe sollte nun Folgendes angezeigt werden:
Provider = Microsoft RSA SChannel Cryptographic Provider