Habilitar LDAP sobre 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.

Versión original del producto:   Windows Server 2012 R2
Número KB original:   321051

Resumen

Ldap se usa para leer y escribir en Active Directory. De forma predeterminada, el tráfico LDAP se transmite sin seguridad. Puede hacer que el tráfico LDAP sea confidencial y seguro mediante la tecnología SSL/Seguridad de la capa de transporte (TLS). Puede habilitar LDAP sobre SSL (LDAPS) instalando un certificado con el formato correcto de una entidad de certificación (CA) de Microsoft o de una entidad de certificación que no sea de Microsoft de acuerdo con 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 que el servicio LDAP escuche y acepte automáticamente conexiones SSL para el tráfico ldap y el tráfico de catálogo global.

Requisitos para un certificado LDAPS

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

  • El certificado LDAPS se encuentra en el almacén de certificados personal del equipo local (conocido mediante programación como almacén de certificados MI del equipo).

  • Una clave privada que coincide con el certificado está presente en el almacén del equipo local y está asociada correctamente con el certificado. La clave privada no debe tener habilitada la protección de clave privada segura.

  • La extensión uso mejorado de clave incluye el identificador de objeto de autenticación de servidor (1.3.6.1.5.5.7.3.1) (también conocido como OID).

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

    • Nombre común (CN) en el campo Asunto.
    • Entrada DNS en la extensión Subject Alternative Name.
  • El certificado fue emitido por una CA en la que confían el controlador de dominio y los clientes 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.

  • Usa el proveedor de servicios criptográficos (CSP) Schannel para generar la clave.

Crear la solicitud de certificado

Cualquier utilidad o aplicación que cree una solicitud PKCS válida #10 puede usarse para formar la solicitud de certificado SSL. Use Certreq para formar la solicitud.

Certreq.exe requiere un archivo de instrucciones de texto para generar una solicitud de certificado X.509 adecuada para un controlador de dominio. Puede crear este archivo con el editor de texto ASCII que prefiera. Guarda el archivo como un archivo .inf en cualquier carpeta de la unidad de disco duro.

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

  1. Crea el archivo .inf. A continuación se muestra un archivo .inf de ejemplo que se puede usar para crear la solicitud de certificado.

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

    [Versión]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN= <DC fqdn> " ; replace with the FQDN of the DC
    KeySpec = 1
    KeyLength = 1024
    ; Puede ser 1024, 2048, 4096, 8192 o 16384.
    ; Los tamaños de clave más grandes son más seguros, pero tienen
    ; un mayor impacto en el rendimiento.
    Exportable = TRUE
    MachineKeySet = TRUE
    SMIME = False
    PrivateKeyArchive = FALSE
    UserProtected = FALSE
    UseExistingKeySet = FALSE
    ProviderName = "Proveedor criptográfico Microsoft RSA SChannel"
    ProviderType = 12
    RequestType = PKCS10
    KeyUsage = 0xa0

    [EnhancedKeyUsageExtension]

    OID=1.3.6.1.5.5.7.3.1 ; esto es para la autenticación de 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.

    Es posible que algunas entidades de certificación de terceros requieran información adicional en el parámetro Subject. Esta información incluye una dirección de correo electrónico (E), una unidad organizativa (OU), una organización (O), una localidad o ciudad (L), un estado o una provincia (S) y un país o región (C). Puedes anexar esta información al nombre del sujeto (CN) en el archivo Request.inf. Por ejemplo:

    Subject="E= admin@contoso.com , CN= , OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US".

  2. Para crear el archivo de solicitud, ejecute el siguiente comando en el símbolo del sistema:

    certreq -new request.inf request.req
    

    Se crea 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 terceros.

  4. Recupere el certificado emitido y, a continuación, guarde el certificado como Certnew.cer en la misma carpeta que el archivo de solicitud siguiendo estos pasos:

    1. Cree un archivo llamado Certnew.cer.
    2. Abra el archivo en el Bloc de notas, pegue el certificado codificado en el archivo y, a continuación, guarde el archivo.

    Nota

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

  5. Acepte el certificado emitido ejecutando el siguiente comando en el símbolo del sistema:

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

    1. Inicie Microsoft Management Console (MMC).
    2. Agregue el complemento Certificados que administra certificados en el equipo local.
    3. Expanda Certificados (equipo local), personal y, a continuación, expanda certificados. Debe existir un nuevo certificado en el almacén personal. En el cuadro de diálogo Propiedades del certificado, el propósito que se muestra es autenticación de 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 solicitud de certificado, consulte las siguientes white paper de administración y inscripción avanzada de certificados. Para ver estas white paper, consulte Advanced Certificate Enrollment and Management.

Comprobar 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ú Conexión, haga clic en Conectar.

  3. Escriba el nombre del controlador de dominio al que desea conectarse.

  4. Escriba 636 como número de puerto.

  5. Haga clic en Aceptar.

    La información rootDSE debe imprimirse en el panel derecho, lo que indica que la conexión se ha realizado correctamente.

Posibles problemas

  • Iniciar 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 de TCP 3269. Al conectarse a los puertos 636 o 3269, se negocia SSL/TLS antes de intercambiar cualquier tráfico LDAP.

  • Varios certificados SSL

    Schannel, el proveedor 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, es posible que Schannel no seleccione el certificado correcto.

  • Problema de almacenamiento en caché de certificados SSL previos a SP3

    Si un certificado LDAPS existente se reemplaza por otro certificado, ya sea a través de un proceso de renovación o porque la CA emisora ha cambiado, el servidor debe reiniciarse para que Schannel use el nuevo certificado.

Mejoras

La recomendación original de este artículo era colocar certificados en el almacén personal de la máquina local. Aunque esta opción es compatible, también puedes colocar certificados en el almacén de certificados personal del servicio NTDS en Windows Server 2008 y en versiones posteriores de Servicios de dominio de Active Directory (AD DS). Para obtener más información acerca de cómo agregar el certificado al almacén de certificados personal del servicio NTDS, vea Identificador de evento 1220 - LDAP sobre SSL.

AD DS busca certificados en este almacén a través del almacén del equipo local. Esto facilita la configuración de AD DS para usar el certificado que quieres que use. Se debe a que puede haber varios certificados en el almacén Personal de máquinas locales y puede ser difícil predecir cuál está seleccionado.

AD DS detecta cuándo se elimina un nuevo certificado en su almacén de certificados y, a continuación, desencadena una actualización de certificado SSL sin tener que reiniciar AD DS o reiniciar el controlador de dominio.

Una nueva operación rootDse denominada renewServerCertificate se puede usar para desencadenar manualmente AD DS para actualizar sus certificados SSL sin tener que reiniciar AD DS o reiniciar el controlador de dominio. Este atributo se puede actualizar mediante 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, vea 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 el certificado cuya fecha de expiración sea más próxima en el futuro. A continuación, si el certificado actual se acerca a su fecha de expiración, puedes colocar el certificado de reemplazo en el almacén y AD DS cambia automáticamente para usarlo.

Todos estos funcionan para Windows Server 2008 AD DS y para Active Directory Lightweight Directory Services (AD LDS) de 2008. Para AD LDS, coloque certificados en el almacén de certificados personal para el servicio que corresponde a la instancia de AD LDS en lugar de para el servicio NTDS.