Habilitar LDAP a través de SSL con una entidad de certificación de terceros

En este artículo se describe cómo habilitar el Protocolo ligero de acceso a directorios (LDAP) a través de capa de sockets seguros (SSL) con una entidad de certificación de terceros.

Se aplica a: Windows Server 2012 R2
Número KB original: 321051

Resumen

El LDAP se utiliza para leer de Active Directory y escribir en él. De forma predeterminada, el tráfico de LDAP se transmite de manera no segura. Puede hacer que el tráfico de LDAP sea confidencial y seguro utilizando la tecnología SSL/Seguridad de la capa de transporte (TLS). Puede habilitar LDAP sobre SSL (LDAPS) si instala un certificado con un formato correcto de una entidad emisora de certificados (CA) de Microsoft o que no sea de Microsoft según las directrices de este artículo.

No hay ninguna interfaz de usuario para configurar LDAPS. La instalación de un certificado válido en un controlador de dominio permite al servicio LDAP escuchar y aceptar automáticamente conexiones SSL tanto para tráfico LDAP como para tráfico de catálogo global.

Requisitos para un certificado LDAPS

Para habilitar LDAPS debe instalar un certificado que cumpla los requisitos siguientes:

  • El certificado de LDAPS se encuentra en el almacén de certificados personales del equipo local (en programación se conoce como el almacén de certificados MY del equipo).

    Nota:

    Si hay un certificado en el almacén de NT Directory Services (NTDS), DC utiliza el certificado en el almacén de NTDS en su lugar.

  • En el almacén del equipo local hay una clave privada que coincide con el certificado y está asociada correctamente al certificado. La clave privada no debe tener habilitada la protección con clave privada segura.

  • La extensión Uso mejorado de clave incluye el identificador de objeto de Autenticación del servidor, también conocido como OID (1.3.6.1.5.5.7.3.1).

  • El nombre de dominio completo de Active Directory del controlador de dominio (por ejemplo, dc01.contoso.com) debe aparecer en uno de los lugares siguientes:

    • El Nombre común (CN) en el campo Asunto.
    • Entrada de DNS en la extensión de Nombre alternativo del sujeto.
  • El certificado fue emitido por una CA en la que confían el controlador de dominio y el cliente de LDAPS. La confianza se establece configurando los clientes y el servidor para que confíen en la CA raíz a la que se encadena la CA emisora.

  • Use el proveedor de servicios de cifrado (CSP) Schannel para generar la clave.

Cree la petición de certificado

Cualquier utilidad o aplicación que cree una petición PKCS #10 válida puede utilizarse para formular la petición del certificado SSL. Use Certreq para crear la solicitud.

Certreq.exe requiere un archivo de instrucciones de texto que genere una petición de certificado X.509 adecuada para un controlador de dominio. Puede crear este archivo utilizando su editor de texto ASCII preferido. Guarde el archivo como un archivo .inf en cualquier carpeta del disco duro.

Para solicitar un certificado de Autenticación del servidor adecuado para LDAPS, siga estos pasos:

  1. Cree el archivo .inf. A continuación se muestra un ejemplo de un archivo .inf que puede utilizarse para crear la petición de certificado.

    ;----------------- request.inf -----------------

    [Version]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN=<DC fqdn>" ; sustitúyalo por el FQDN del DC
    KeySpec = 1
    KeyLength = 1024
    ; Puede ser 1024, 2048, 4096, 8192 ó 16384.
    ; Los tamaños de clave mayores son más seguro, pero tienen
    ; un impacto mayor sobre el rendimiento.
    Exportable = TRUE
    MachineKeySet = TRUE
    SMIME = False
    PrivateKeyArchive = FALSE
    UserProtected = FALSE
    UseExistingKeySet = FALSE
    ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
    ProviderType = 12
    RequestType = PKCS10
    KeyUsage = 0xa0

    [EnhancedKeyUsageExtension]

    OID=1.3.6.1.5.5.7.3.1 ; es para la Autenticación del servidor

    ;-----------------------------------------------

    Corte y pegue el archivo de ejemplo en un nuevo archivo de texto denominado Request.inf. Proporcione el nombre DNS completo del controlador de dominio en la solicitud.

    Algunas entidades emisoras de certificados de terceros pueden requerir información adicional en el parámetro Subject. Esa información incluye una dirección de correo electrónico (E), unidad organizativa (OU), organización (O), localidad o ciudad (L), estado o provincia (S) y país o región (C). Puede anexar esta información al nombre Subject (CN) en el archivo Request.inf. Por ejemplo:

    Subject="E=admin@contoso.com, CN=<DC fqdn>, OU=Servidores, O=Contoso, L=Redmond, S=Washington, C=US."

  2. Cree el archivo de solicitud ejecutando el siguiente comando en el símbolo del sistema:

    certreq -new request.inf request.req
    

    Se creará un nuevo archivo denominado Request.req. Es el archivo de solicitud codificado en base64.

  3. Envíe la solicitud a una CA. Puede enviar la solicitud a una CA de Microsoft o a una CA de otro fabricante.

  4. Recupere el certificado emitido y guárdelo como Certnew.cer en la misma carpeta que el archivo de solicitud siguiendo estos pasos:

    1. Cree un nuevo archivo denominado Certnew.cer.
    2. Abra el archivo en el Bloc de notas, pegue el certificado codificado en el archivo y guarde el archivo.

    Nota:

    El certificado guardado debe codificarse como base64. Algunas CA de otros fabricantes devuelven el certificado emitido al solicitante como texto codificado en base64 en un mensaje de correo electrónico.

  5. Para aceptar el certificado emitido, ejecute el siguiente comando en el símbolo del sistema:

    certreq -accept certnew.cer
    
  6. Compruebe que el certificado se ha instalado en el almacén personal del equipo siguiendo estos pasos:

    1. Inicie Microsoft Management Console (MMC).
    2. Agregue el complemento Certificados que administra los certificados del equipo local.
    3. Expanda sucesivamente Certificados (Equipo local), Personal y Certificados. Debe existir un nuevo certificado en el almacén personal. En el cuadro de diálogo Propiedades de certificado, el propósito previsto que se muestra es Autenticación del servidor. Este certificado se emite para el nombre de host completo del equipo.
  7. Reinicie el controlador de dominio.

Para obtener más información acerca de cómo crear la petición de certificado, consulte el siguiente documento sobre Inscripción y administración avanzadas de certificados. Para ver este documento técnico, consulte Advanced Certificate Enrollment and Management (Inscripción y administración avanzadas de certificados).

Comprobación de una conexión LDAPS

Después de instalar un certificado, siga estos pasos para comprobar que LDAPS esté habilitado:

  1. Inicie la Herramienta de administración de Active Directory (Ldp.exe).

  2. En el menú Connection, haga clic en Connect.

  3. Escriba el nombre del controlador de dominio con el que desea conectar.

  4. Escriba 636 como el número de puerto.

  5. Haga clic en Aceptar.

    La información de RootDSE debe aparecer en el panel derecho, indicando una conexión correcta.

Posibles problemas

  • Inicio de solicitud extendida TLS

    La comunicación LDAPS se produce a través del puerto TCP 636. La comunicación LDAPS con un servidor de catálogo global se produce a través del puerto TCP 3269. Al conectarse a los puertos 636 o 3269, SSL/TLS se negocia antes de intercambiarse ningún tráfico LDAP.

  • Varios certificados SSL

    Schannel, el proveedor de SSL de Microsoft, selecciona el primer certificado válido que encuentra en el almacén del equipo local. Si hay varios certificados válidos disponibles en el almacén del equipo local, Schannel no puede seleccionar el certificado correcto.

  • Problema de almacenamiento en caché de un certificado SSL anterior al SP3

    Si un certificado LDAPS existente se reemplaza con otro certificado, ya sea por un proceso de renovación o porque la CA emisora ha cambiado, se debe reiniciar el servidor para que Schannel utilice el nuevo certificado.

Mejoras

La recomendación original de este artículo era poner certificados en el almacén personal del equipo local. Aunque esta opción es compatible, también puede colocar certificados en el almacén de certificados personales del servicio NTDS en Windows Server 2008 y en versiones posteriores de Active Directory Domain Services (AD DS). Para obtener más información acerca de cómo agregar el certificado al almacén de certificados personales del servicio NTDS, consulte ID de evento 1220 - LDAP mediante SSL.

AD DS busca de forma preferente certificados en este almacén sobre el almacén del equipo local. De esta forma, configurar AD DS para utilizar el certificado que desea utilizar se convierte en una tarea más sencilla. Esto se debe a que pueden haber múltiples certificados en el almacén personal del equipo local y puede resultar difícil predecir cuál es el seleccionado.

AD DS detecta cuándo un certificado se coloca en su almacén certificado y desencadena una actualización del certificado SSL sin reiniciar AD DS ni reiniciar el controlador de dominio.

Una nueva operación rootDse denominada renewServerCertificate puede utilizarse para desencadenar de forma manual AD DS para actualizar su certificado SSL sin reiniciar AD DS o reiniciar el controlador de dominio. Este atributo se podrá actualizar utilizando adsiedit.msc o importando el cambio en el Formato de intercambio de directorios LDAP (LDIF) mediante ldifde.exe. Para obtener más información sobre el uso de LDIF para actualizar este atributo, consulte renewServerCertificate.

Por último, si un controlador de dominio de Windows Server 2008 o una versión posterior encuentra varios certificados en su almacén, selecciona automáticamente aquel cuya fecha de caducidad es más lejana.

Todos esto se aplica a Windows Server 2008 AD DS y Active Directory Lightweight Directory Services (AD LDS) para 2008. Para AD LDS, ponga certificados en el almacén de certificados personales para el servicio correspondiente a la instancia AD LDS en lugar de para el servicio NTDS.