Where Are You Coming From Today?
Follow us on:
Por Daniel Seveso
Los certificados "Self-Signed" son certificados provisorios que permiten la comunicación segura y encripción de datos entre servidores de la organización inmediatamente luego de la instalación de Exchange. Estos certificados se crean y configuran durante la instalación de los roles de Exchange 2007, y los mismos expiran al año de su creación. Debido a sus limitaciones, la recomendación general es que luego de instalar Exchange, obtengas un certificado comercial o de una autoridad certificadora local.
Si estás usando un ambiente de laboratorio o simplemente no has reemplazado el certificado en tu ambiente de producción, y el certificado expira, verás los siguientes eventos en el log de aplicaciones:
Event Type: Warning Event Source: MSExchangeTransport Event Category: TransportService Event ID: 12015 Date: 12/31/2008 Time: 10:34:53 AM User: N/A Computer: NETE12-1 Description: An internal transport certificate expired. Thumbprint:6C5EAB868FF1F052B2F04C177CFC2677B4E8CEBF
Event Type: Error Event Source: MSExchangeTransport Event Category: TransportService Event ID: 12014 Date: 12/31/2008 Time: 10:34:53 AM User: N/A Computer: NETE12-1 Description: Microsoft Exchange couldn't find a certificate that contains the domain name NetE12-1.dseveso.net in the personal store on the local computer. Therefore, it is unable to support the STARTTLS SMTP verb for the connector Default NETE12-1 with a FQDN parameter of NetE12-1.dseveso.net. If the connector's FQDN is not specified, the computer's FQDN is used. Verify the connector configuration and the installed certificates to make sure that there is a certificate with a domain name for that FQDN. If this certificate exists, run Enable-ExchangeCertificate -Services SMTP to make sure that the Microsoft Exchange Transport service has access to the certificate key.
Lo primero que debes hacer es confirmar esta información obteniendo las propiedades del certificado. El Thumbprint es el atributo único del certificado que nos permite ubicarlo, y lo utilizamos para filtrar el siguiente comando:
[PS] C:\>Get-ExchangeCertificate | Where {$_.Thumbprint -eq "6C5EAB868FF1F052B2F04C177CFC2677B4E8CEBF"} |fl
AccessRules : {System.Security.AccessControl.CryptoKeyAccessRule, System .Security.AccessControl.CryptoKeyAccessRule, System.Securi ty.AccessControl.CryptoKeyAccessRule} CertificateDomains : {NetE12-1, NetE12-1.dseveso.net} HasPrivateKey : True IsSelfSigned : True Issuer : CN=NetE12-1 NotAfter : 7/18/2008 7:27:32 AM NotBefore : 7/18/2007 7:27:32 AM PublicKeySize : 2048 RootCAType : Unknown SerialNumber : 2672EF8DBF41B18246F520E7FC364890 Services : IMAP, POP, IIS, SMTP Status : Invalid Subject : CN=NetE12-1 Thumbprint : 6C5EAB868FF1F052B2F04C177CFC2677B4E8CEBF
Vemos que es un "Self-Signed" certificate, que su estado es inválido y que su fecha de expiración (NotAfter) es 7/18/2008.
En Exchange 2007 los certificados "Self-Signed" se emiten con dos nombres o "Subject Alternative Name", que corresponden a la propiedad "CertificateDomains" del comando anterior. Los mismos son el nombre de NetBIOS y el FQDN ( Fully Qualified Domain Name) del servidor.
Una vez confirmado que necesitamos un nuevo certificado, usamos el siguiente procedimiento para crear el nuevo certificado "Self-Signed".
AccessRules : {System.Security.AccessControl.CryptoKeyAccessRule, System .Security.AccessControl.CryptoKeyAccessRule, System.Securi ty.AccessControl.CryptoKeyAccessRule} CertificateDomains : {NetE12-1, NetE12-1.dseveso.net} HasPrivateKey : True IsSelfSigned : True Issuer : CN=NetE12-1 NotAfter : 12/31/2009 12:27:46 PM NotBefore : 12/31/2008 12:27:46 PM PublicKeySize : 2048 RootCAType : None SerialNumber : 303583ADA3B6889E4C7B7F14CCB08578 Services : IMAP, POP, SMTP Status : Valid Subject : CN=NetE12-1 Thumbprint : 813E2977C565866BFBA1EF660653F6128F5827E4
[PS] C:\>Get-ExchangeCertificate | Where {$_.Thumbprint -eq "813E2977C565866BFBA1EF660653F6128F5827E4"} | fl
AccessRules : {System.Security.AccessControl.CryptoKeyAccessRule, System .Security.AccessControl.CryptoKeyAccessRule, System.Securi ty.AccessControl.CryptoKeyAccessRule} CertificateDomains : {NetE12-1, NetE12-1.dseveso.net} HasPrivateKey : True IsSelfSigned : True Issuer : CN=NetE12-1 NotAfter : 12/31/2009 12:27:46 PM NotBefore : 12/31/2008 12:27:46 PM PublicKeySize : 2048 RootCAType : None SerialNumber : 303583ADA3B6889E4C7B7F14CCB08578 Services : IMAP, POP, IIS, SMTP Status : Valid Subject : CN=NetE12-1 Thumbprint : 813E2977C565866BFBA1EF660653F6128F5827E4
Luego de recrear el certificado, ya no tendremos el mensaje de error inicial (al menos por el próximo año...)
Esta perfecto y me funciona sin problema con la configuración del Outlook rpc/http, pero en los clientes Outlook del sitio local me presenta el siguiente error: "el nombre del certificado de seguridad no es válido o no coincide con el nombre del sitio", me pregunta si quiero continuar, selecciono que si, y continua trabajando sin problema, puede enviar como recibir correo, pero le aparece esa advertencia. agradeceria tu ayuda. De antemano gracias
Hola wilmer,
Es posible que el nombre con el que el cliente está contactando al servidor no sea el mismo que el nombre del certificado.
Por ejemplo si tienes publicado el el CAS server con owa.company.com y tu CAS es cas1.company.com, te dará ese error.
En general cuando publicas el nombre del CAS hacia afuera ya necesitas un certificado emitido por tu propia infraestructura PKI o por una entidad certificadora comercial.
Espero que ayude!
Daniel.