Cómo renovar un certificado wildcard en Dynamics CRM 2016 On‑Premise con AD FS

¿Tu entorno de Dynamics CRM 2016 On‑Premise ha dejado de funcionar porque el certificado SSL wildcard expiró? A continuación encontrarás una guía extensa y práctica—paso a paso, con comandos, consejos de seguridad y scripts—para sustituirlo sin interrumpir el inicio de sesión a través de AD FS y devolver a producción tu plataforma CRM.

Índice

Escenario y requerimientos

Partimos de una instancia de CRM 2016 que:

  • Está desplegada en modo claims-based authentication con AD FS 3.0 / 4.0.
  • Publica la misma URL tanto interna como externamente (por ejemplo, https://crm.midominio.com).
  • Utiliza un certificado wildcard (*.midominio.com) caducado del que no se conservan registros de emisión.
  • Debe mantener la misma CN/SAN y evitar tiempos muertos.

Plan de alto nivel

  1. Auditar el certificado actual y el almacén de confianza.
  2. Generar o solicitar un nuevo wildcard (misma clave pública CN).
  3. Instalar / importar el nuevo .pfx en los servidores CRM y AD FS.
  4. Actualizar los bindings de IIS y los certificados de servicio de AD FS.
  5. Sincronizar los metadatos y probar inicios de sesión.

Tabla resumen de pasos

PasoQué hacerDetalle práctico
1. Identificar el tipo de certificado actual¿Certificado autofirmado/interno o emitido por una AC pública?Interno: Normalmente firmado por la Autoridad de Certificación corporativa o generado en IIS. Público: Emitido por proveedor externo (DigiCert, Sectigo, Let’s Encrypt, etc.).
2. Generar o renovar el certificadoSi es interno (CA corporativa o autofirmado) En IIS Manager del servidor CRM abre Server Certificates. Haz clic en Create Certificate Request e introduce los datos (CN=*.dominio.com). Envía el CSR a tu CA interna y descarga el nuevo certificado (.cer o .p7b). Importa el certificado en el almacén Personal de la máquina y asegúrate de que incluye la clave privada. Si es de una AC pública Solicita un nuevo wildcard con la misma AC o con otra. Supera la validación de dominio (DNS TXT, archivo HTTP o e‑mail). Descarga los archivos .crt/.p7b y la cadena intermedia. Combina clave + certificado en un .pfx (o usa la opción nativa del proveedor) e impórtalo.
3. Vincular el certificado en IISReemplazar la asociación en el sitio CRM.En Bindings del sitio «Microsoft Dynamics CRM» edita el puerto 443. Selecciona el nuevo wildcard en el desplegable SSL Certificate. Repite para el Default Web Site (usado por AD FS si comparte IIS).
4. Actualizar AD FSAsignar el nuevo certificado de comunicación.Abre AD FS Management → Service → Certificates. Haz clic en Set Service Communication Certificate y elige el nuevo wildcard. Reinicia el servicio ADFS para regenerar el XML de metadatos. ⚠️ Si cambiaste token‑signing o decrypting, ejecuta:
Update-AdfsRelyingPartyTrust ` -Identifier "urn:crm" ` -MetadataURL "https://crm.midominio.com/FederationMetadata/2007-06/FederationMetadata.xml"
5. Sincronizar cambios con CRMActualizar metadatos de confianza.Desde Deployment Manager selecciona la organización → Configure Claims‑based Authentication → Next para forzar la lectura del nuevo XML. Vía PowerShell:
Add-PSSnapin Microsoft.Crm.PowerShell Update-CrmOrganization -Name "ORGANIZACION" -RetrieveCrmInformationFromServer
6. Reiniciar servicios y validarVerificar que todo opera con el nuevo certificado.Ejecuta iisreset /noforce en los servidores Front‑End. Reinicia los servicios Backend si tu topología es distribuida. En un navegador:
Comprueba el candado y la huella SHA‑256. Asegura que la fecha de validez mostrada es la nueva. Realiza un inicio de sesión con usuario federado.

Guía detallada y ampliada

Auditoría inicial del certificado expirado

Ejecuta en PowerShell:

Get-ChildItem Cert:\LocalMachine\My |
  Where-Object { $_.Subject -like "*.midominio.com" } |
  Select-Object Subject, NotAfter, Thumbprint

Con ello identificas la fecha exacta de caducidad y la huella digital para documentarla antes de la retirada. Exporta la versión antigua con:

Export-PfxCertificate `
  -Cert Cert:\LocalMachine\My\THUMBPRINT_ANTIGUO `
  -FilePath "C:\Respaldos\wildcard_old.pfx" `
  -Password (Read-Host -AsSecureString "Contraseña")

Creación del CSR mediante IIS

Aunque existen utilidades de línea de comandos y OpenSSL, generar el CSR desde IIS simplifica la asociación automática de la clave privada. Recuerda incluir:

  • Common Name (CN): *.midominio.com
  • Organization y OU: según políticas internas.
  • Private key length: mínimo 2048 bits (recomendado 3072).
  • Hash algorithm: SHA‑256.

Importación correcta del .pfx

Tras recibir el certificado firmado, sigue estos pasos:

  1. Copia el archivo .pfx en una ruta local segura (no en Escritorio).
  2. Haz doble clic en el fichero → Local Machine → Personal → marca «Mark this key as exportable» para futuras migraciones.
  3. Confirma que en MMC › Certificates › Personal aparece el icono de llave (clave privada asociada).
  4. Otorga permisos de lectura a las cuentas de servicio: svccrmapp, svcadfs, NETWORK SERVICE (según tu diseño).

Automatización con PowerShell

Para entornos con varios servidores o renovaciones frecuentes (Let’s Encrypt / win‑acme), este script actualiza IIS y AD FS en lote:

# Variables
$thumbprint = "NUEVA_HUELLA"
$sites = @("Microsoft Dynamics CRM", "Default Web Site")

Actualizar bindings IIS

Import-Module WebAdministration
foreach (\$s in \$sites) {
Get-WebBinding -Name \$s -Protocol https |
ForEach-Object {
Set-WebBinding -Name \$s -Protocol https -Port 443 `        -HostHeader $_.HostHeader -SslFlags 0`
-CertificateThumbPrint \$thumbprint \`
-CertificateStoreName MY
}
}

AD FS

Set-AdfsSslCertificate -Thumbprint \$thumbprint
Restart-Service adfssrv

Write-Host "Renovación completada."

Verificación posterior a la renovación

Pruebas funcionales:

  • Acceder a https://crm.midominio.com desde una red externa y confirmar inicio de sesión.
  • Ejecutar el Diagnostics Wizard de CRM para certificar la conectividad web.
  • Revisar el Event Viewer › AD FS Admin y CRM Trace Logs para descartar warnings de certificados.

Buenas prácticas y notas complementarias

  1. Respaldo: Guarda el antiguo .pfx y anota huellas SHA‑1/SHA‑256 antes de reemplazarlo.
  2. Permisos mínimos: Usa «Manage Private Keys» para limitar quién puede leer la clave.
  3. Alertas de caducidad: Programa un Scheduled Task con certutil -view + correo SMTP para avisos 60‑30‑7 días.
  4. Let’s Encrypt: Excelente opción gratuita si automatizas con win-acme --renew --baseuri https://acme-v02.api.letsencrypt.org/.
  5. Compatibilidad TLS: CRM 2016 soporta TLS 1.2 desde UR 2; verifica las claves de registro SchUseStrongCrypto en .NET Framework.
  6. Lifecycle: Dynamics CRM 2016 carece de soporte mainstream desde enero 2021; planifica migrar a Dynamics 365 9.x.

Errores comunes y su solución

Error observadoCausa probableSolución
404 / ID3206 en AD FSEl certificado de Service Communications no coincide con el binding IIS.Ejecuta Set-AdfsSslCertificate y revisa los bindings.
HTTP 503 Service UnavailableServicio CRMAppPool detenido tras reinicio de IIS.Revisa permisos de la nueva clave privada en MMC.
Navegadores muestran «NET::ERRCERTCOMMONNAMEINVALID»El CN del certificado no es wildcard o no incluye subdominio publicado (crm.midominio.com).Solicita nuevamente el certificado con CN=*.midominio.com o agrega SAN.

Preguntas frecuentes

¿Puedo renovar el certificado con la misma clave privada?

Sí, algunos proveedores permiten generar un certificado nuevo reutilizando la clave antigua, pero no se recomienda: una clave nueva mitiga compromisos pasados. Aprovecha para fortalecer la longitud a 3072 o 4096 bits.
¿Qué ocurre si AD FS y CRM están en servidores diferentes?

Debes importar el .pfx en ambos nodos y sincronizar certificados de forma independiente (IIS en CRM; servicio en AD FS).
¿Admite Dynamics CRM 2016 certificados ECDSA?

No. El pipeline de criptografía usa CSP RSA. Emplea claves RSA ≥ 2048 bits.

Conclusión

Renovar un certificado wildcard en Dynamics CRM 2016 On‑Premise implica coordinar IIS y AD FS, pero siguiendo los pasos anteriores—backup, solicitud, importación, bindings, metadatos, validación—la operación es segura y sin pérdidas de servicio. Documenta el procedimiento, automatiza alertas y evalúa actualizar tu plataforma para reducir riesgos futuros.

Índice