Bei der Installation von Exchange Server 2013 habe ich folgende Meldung erhalten:
Error:
The following error was generated when “$error.Clear();
Install-ExchangeCertificate -WebSiteName “Exchange Back End” -services “IIS, POP, IMAP” -DomainController $RoleDomainController
-InstallInTrustedRootCAIfSelfSigned $true
if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true)
{
Install-AuthCertificate -DomainController $RoleDomainController
}
” was run: “Microsoft.Exchange.Management.SystemConfigurationTasks.
AddAccessRuleCryptographicException: Could not grant Network Service access to the certificate
with thumbprint 4D3EF9423ABF9B69A849FDFD19AB97BD8676D348 because a cryptographic exception was thrown. —>
System.Security.Cryptography.CryptographicException: Access is denied.at Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.
CAPIAddAccessRule(X509Certificate2 certificate, AccessRule rule)
at Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.
AddAccessRule(X509Certificate2 certificate, AccessRule rule)
at Microsoft.Exchange.Management.SystemConfigurationTasks.
ManageExchangeCertificate.EnableForServices(X509Certificate2 cert,
AllowedServices services, String websiteName, Boolean requireSsl,
ITopologyConfigurationSession dataSession, Server server, List`1 warningList,
Boolean allowConfirmation, Boolean forceNetworkService)
— End of inner exception stack trace —
at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.SystemConfigurationTasks.
InstallExchangeCertificate.EnableForServices(X509Certificate2 cert, AllowedServices services)
at Microsoft.Exchange.Management.SystemConfigurationTasks.
InstallExchangeCertificate.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)”.
Nach ein bisschen Suchen habe ich festgestellt, dass es im lokalen Zertifikatsspeicher ein Zertifikat gibt, welches der Exchange Server nicht kennt.
Starten Sie dazu die Windows Powershell (nicht Exchange Powershell) und setzen Sie folgende Befehle ab:
Add-PSSnapin Micosoft.Exchange.Management.Powershell.E2010
Get-ExchangeCertificate
Wenn wir diese Informationen mit den lokalen Zertifikaten vergleichen, fällt auf, dass es ein Zertifikat gibt, welches der Exchange nicht kennt.
Sie können nun in die Eigenschaften der Zertifikate gehen und anhand der Thumbprint vergleichen, welches Zertifikat nicht in der Exchange Powershell angezeigt wird. Entfernen Sie diese Zertifikat danach aus den lokalen Zertifikatsspeicher.
Im Anschluss starten Sie das Exchange Setup erneut.