Compartir a través de


Mantenimiento del certificado de OAuth de Exchange Server

Información general

En esta documentación se describen los pasos necesarios para rotar el certificado de autenticación de Exchange Server sin interrumpir el servicio Exchange y antes de que expire el actual.

Sugerencia

También puede usar el script MonitorExchangeAuthCertificate . Realiza los pasos necesarios para girar automáticamente el certificado de OAuth. También puede ayudarle a reemplazar el certificado de OAuth si ya ha expirado.

El servidor de Microsoft Exchange usa la configuración de autenticación y el certificado de autenticación para habilitar la autenticación de servidor a servidor mediante el estándar de protocolo Open Authorization (OAuth). Puede encontrar más información al respecto en el siguiente artículo: Planeamiento de la integración de Exchange con SharePoint y Skype para empresas

El certificado de autenticación también lo usan varias características de seguridad de Exchange Server.

Durante la instalación del primer servidor de Exchange, la rutina de instalación genera un certificado autofirmado con el nombre Microsoft Exchange Server Auth Certificatedescriptivo , que luego se agrega a una nueva configuración de autenticación. Este certificado se replica automáticamente en todos los servidores front-end de la organización de Exchange. El servicelet de certificado de Exchange realiza la replicación, que forma parte del MSExchangeServiceHost proceso. Si agrega más servidores a su organización de Exchange, el servicelet se encarga de replicar el certificado en todos los servidores de Exchange, que se agregaron a la organización.

El certificado, que está configurado como certificado de autenticación actual, se puede consultar mediante la ejecución de la siguiente consulta de PowerShell (debe ejecutarse en el Shell de administración de Exchange):

(Get-AuthConfig).CurrentCertificateThumbprint | Get-ExchangeCertificate | Format-List Subject, Thumbprint, NotAfter, NotBefore

Si se produce un error en la llamada con la siguiente advertencia, significa que falta el certificado de autenticación actual en el servidor.

A special Rpc error occurs on server <Servername>: The certificate with thumbprint <AuthCertificateThumbprint> was not found.

Siga las instrucciones mencionadas en la sección "Cuáles son los pasos que se deben seguir si el certificado actual ya ha expirado o falta" para corregirlo.

El certificado, que se configura como el siguiente certificado de autenticación, se puede consultar de la siguiente manera:

(Get-AuthConfig).NextCertificateThumbprint | Get-ExchangeCertificate | Format-List Subject, Thumbprint, NotAfter, NotBefore

Si se produce un error en la llamada con la misma advertencia que para el certificado de autenticación actual, significa que el siguiente certificado de autenticación no está configurado o falta en el servidor.

Siga las instrucciones que se describen en "Cómo rotar el certificado de autenticación de Exchange Server" si el certificado de autenticación actual está a punto de expirar.

¿Cuáles son los pasos que se deben seguir si el certificado actual ya ha expirado o falta?

En este caso, es necesario reemplazar inmediatamente el certificado de autenticación antiguo por uno nuevo. Siga las instrucciones descritas en la sección de resoluciones del siguiente artículo de soporte técnico: No se puede iniciar sesión en Outlook en la web o EAC si el certificado de OAuth de Exchange Server ha expirado.

Rotación del certificado de autenticación de Exchange Server

Es importante reemplazar el certificado de autenticación activo por uno nuevo antes de que expire. Al hacerlo, se garantiza una transición fluida a un nuevo certificado sin interrumpir el servicio Exchange. Puede seguir los pasos siguientes para preparar y almacenar provisionalmente un nuevo certificado de autenticación.

Importante

Asegúrese de que tiene instalada la actualización acumulativa (CU) de Exchange Server más reciente porque contiene correcciones que afectan a la característica de Exchange correspondiente.

  1. Para generar un nuevo certificado de autenticación, ejecute el siguiente comando:

    $newAuthCertificate = New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName @()
    
  2. No sobrescriba el certificado SMTP predeterminado existente (escriba "N" y presione Entrar):

    Confirm
    Overwrite the existing default SMTP certificate?
    
    Current certificate: '<DefaultSMTPCertificateThumbprint>' (expires 12/30/2027 2:39:08 PM)
    Replace it with certificate: '<NewCertificateThumbprint>' (expires 1/5/2028 9:04:48 AM)
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): N
    
  3. Configure el certificado de autenticación para que se convierta en el nuevo activo en 49 horas lo antes posible:

    Set-AuthConfig -NewCertificateThumbprint $newAuthCertificate.Thumbprint -NewCertificateEffectiveDate (Get-Date).AddHours(49)
    

En función del tamaño de la organización de Exchange, el nuevo certificado de autenticación podría tardar algún tiempo en implementarse en todos los servidores de Exchange. Nuestra recomendación es planear al menos 48 horas antes de que el certificado de autenticación recién generado se active. En un entorno de Exchange grande, puede tardar aún más.

El grupo de aplicaciones y MSExchangeECPAppPool almacena en caché MSExchangeOWAAppPool una referencia al certificado de autenticación. Puede reciclar esos grupos de aplicaciones para actualizar esta referencia. Para ello, ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados:

Restart-WebAppPool MSExchangeOWAAppPool
Restart-WebAppPool MSExchangeECPAppPool

El servicelet Exchange AuthAdmin, que también forma parte del MSExchangeServiceHost proceso, es responsable del proceso final de publicación del certificado de autenticación. El servicelet se ejecuta inmediatamente si se reinicia el MSExchangeServiceHost servicio. Después se ejecuta cada 12 horas y, si detecta que NewCertificateEffectiveDate se alcanza, publica el nuevo certificado de autenticación para convertirlo en el nuevo activo.

Para asegurarse de que el servicelet AuthAdmin puede iniciarse, debe habilitar AuthAdminReadSession cuando los servidores exchange están instalados en un dominio secundario y el buzón del sistema se encuentra en el dominio raíz. De lo contrario, el servicelet AuthAdmin no se puede iniciar. Ejecute el siguiente cmdlet de PowerShell si los servidores de Exchange están instalados en la constelación descrita:

Set-OrganizationConfig -EnableAuthAdminReadSession:$true

Puede consultar el último tiempo de ejecución del servicelet AuthAdmin ejecutando los siguientes cmdlets de PowerShell:

[xml]$xml = Get-ExchangeDiagnosticInfo -Process "Microsoft.Exchange.ServiceHost"
$xml.Diagnostics.Components.AnchorApplication.AnchorServiceComponents.CacheScheduler.lastRunTime

Cada ejecución del servicelet AuthAdmin se registra en el directorio siguiente: <ExchangeInstallPath>\Logging\AuthAdminLogs

El servicelet genera una nueva entrada de registro de eventos cuando la rotación del certificado de autenticación se completa correctamente:

Log Name:      Application
Source:        MSExchange AuthAdmin
Date:          12/29/2022 5:56:13 AM
Event ID:      2014
Task Category: General
Level:         Information
Keywords:      Classic
User:          N/A
Description:   The current signing certificate for Exchange has been updated to certificate with thumbprint <NewExchangeCertificateThumbprint>.

Preguntas frecuentes

Pregunta: ¿Es necesario volver a ejecutar el Asistente para configuración híbrida (HCW) después de reemplazar el certificado de autenticación?

Respuesta: Sí, se recomienda encarecidamente ejecutar el Asistente para configuración híbrida (HCW) después de reemplazar el certificado de autenticación activo.

Pregunta: ¿Qué debo hacer si falta el nuevo certificado de autenticación en un servidor exchange en otro sitio de Active Directory (AD)?

Respuesta: Puede exportar el certificado mediante el cmdlet Export-ExchangeCertificate e importarlo a través de Import-ExchangeCertificate en un servidor del otro sitio de AD. El servicelet de certificado se encarga de la replicación en el resto de servidores de Exchange ubicados en el sitio de AD.