Пример #1
0
        internal static LocalizedString UpdateActiveDirectory(X509Certificate2 certificate, IConfigurationSession systemConfiguration, Server server, List <LocalizedString> warningList, bool allowConfirmation)
        {
            X509Certificate2 internalTransportCertificate = ExchangeCertificate.GetInternalTransportCertificate(server);

            if (internalTransportCertificate != null)
            {
                if (string.Equals(internalTransportCertificate.Thumbprint, certificate.Thumbprint, StringComparison.OrdinalIgnoreCase))
                {
                    return(LocalizedString.Empty);
                }
                if (allowConfirmation)
                {
                    return(Strings.ConfirmOverwriteInternalTransportCertificate(internalTransportCertificate.Thumbprint, internalTransportCertificate.NotAfter, certificate.Thumbprint, certificate.NotAfter));
                }
            }
            server.InternalTransportCertificate = certificate.Export(X509ContentType.SerializedCert);
            systemConfiguration.Save(server);
            if (server.IsHubTransportServer)
            {
                ManageExchangeCertificate.ReEncryptEdgeSyncCredentials(server, internalTransportCertificate, certificate);
                systemConfiguration.Save(server);
            }
            else if (server.IsEdgeServer && warningList != null)
            {
                warningList.Add(Strings.InternalTransportCertificateUpdatedOnEdge);
            }
            return(LocalizedString.Empty);
        }