Habilitar LDAP sobre SSL com uma autoridade de certificação de terceiros

Este artigo descreve como habilitar o LDAP (Lightweight Directory Access Protocol) sobre SSL (Secure Sockets Layer) com uma autoridade de certificação de terceiros.

Aplica-se a: Windows Server 2012 R2
Número original do KB: 321051

Resumo

O protocolo LDAP é usado para ler e gravar no Active Directory. Por padrão, o tráfego LDAP é transmitido de maneira não segura. Você pode tornar o tráfego LDAP confidencial e seguro usando a tecnologia SSL/TLS (Transport Layer Security). Você pode habilitar o LDAP sobre SSL (LDAPS) instalando um certificado formatado apropriadamente de uma autoridade de certificação da Microsoft (CA) ou de uma CA que não seja da Microsoft de acordo com as diretrizes neste artigo.

Não existe uma interface do usuário para configurar o LDAPS. A instalação de um certificado válido em um controlador de domínio permite que o serviço LDAP escute e aceite automaticamente as conexões SSL para o tráfego de LDAP e para o tráfego do catálogo global.

Requisitos de um certificado de LDAPS

Para habilitar o LDAPS, você deve instalar um certificado que atenda aos seguintes requisitos:

  • O certificado LDAPS está localizado no armazenamento de certificado particular do computador local (programaticamente conhecido como armazenamento do MEU certificado do computador).

    Observação

    Se houver um certificado no repositório NT Directory Services (NTDS), o DC usará o certificado no repositório NTDS.

  • Uma chave particular que corresponde com o certificado está presente no armazenamento do computador local e está corretamente associada ao certificado. A chave particular não deve ter uma forte proteção de chave particular habilitada.

  • A extensão do uso avançado de chave inclui o identificador de objeto (também conhecido como OID) da autenticação do servidor (1.3.6.1.5.5.7.3.1).

  • O nome de domínio totalmente qualificado do Active Directory do controlador de domínio (por exemplo, dc01.contoso.com) deve aparecer em um dos seguintes locais:

    • O Nome comum (CN) no campo Assunto.
    • Entrada DNS na extensão do Nome alternativo para o usuário.
  • O certificado foi emitido por uma CA na qual o controlador de domínio e os clientes LDAPS confiam. A relação de confiança é estabalecida pela configuração dos clientes e do servidor para confiarem na CA raiz com a qual a CA emissora está encadeada.

  • Use o CSP (provedor de serviços criptografia) Schannel para gerar a chave.

Criar uma solicitação de certificado

Qualquer utilitário ou aplicativo que crie uma solicitação PKCS #10 válida pode ser usado para formar a solicitação de certificado SSL. Use o Certreq para formar a solicitação.

O Certreq.exe exige um arquivo de instrução de texto para gerar uma solicitação de certificado X.509 apropriada para um controlador de domínio. É possível criar este arquivo usando seu editor de texto ASCII preferido. Salve o arquivo como um arquivo .inf em qualquer pasta do seu disco rígido.

Para solicitar um certificado de Autenticação do servidor adequado para LDAPS, execute as seguintes etapas:

  1. Crie o arquivo .inf. O seguinte é um arquivo .inf de exemplo, que pode ser usado para criar a solicitação de certificado.

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

    [versão]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN=<DC fqdn>" ; substitua pelo FQDN do DC
    KeySpec = 1
    KeyLength = 1024
    ; Pode ser 1024, 2048, 4096, 8192, ou 16384.
    ; Tamanhos maiores de chave são mais seguros, mas têm
    ; um maior impacto no desempenho.
    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 ; isto é para a Autenticação do servidor

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

    Corte e cole o arquivo de amostra no próximo arquivo de texto chamado Request.inf. Forneça o nome de DNS totalmente qualificado do controlador de domínio na solicitação.

    Algumas autoridades de certificação de terceiros podem exigir informações adicionais no parâmetro Assunto. Tais informações incluem um endereço de email (E), unidade organizacional (OU), organização (O), localidade ou cidade (L), estado ou província (S) e país ou região (C). Você pode anexar estas informações ao nome da Entidade (CN) no arquivo Request.inf. Por exemplo:

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

  2. Crie o arquivo de solicitação executando o seguinte comando no prompt de comando:

    certreq -new request.inf request.req
    

    Um novo arquivo chamado Request.req é criado. Este é o arquivo de solicitação codificado em base64.

  3. Envie a solicitação para uma CA. É possível enviar a solicitação para uma CA da Microsoft ou de terceiros.

  4. Recupere o certificado emitido e salve-o como Certnew.cer na mesma pasta que o arquivo de solicitação seguindo estas etapas:

    1. Crie um novo arquivo chamado Certnew.cer.
    2. Abra o arquivo no Bloco de notas, cole o certificado codificado no arquivo e salve o arquivo.

    Observação

    O certificado salvo deve estar codificado como base64. Algumas CAs de outras empresas retornam o certificado emitido para o solicitador como um texto codificado em base64 em um email.

  5. Aceite o certificado emitido executando o seguinte comando no prompt de comando:

    certreq -accept certnew.cer
    
  6. Verifique se o certificado está instalado no repositório Pessoal do computador seguindo estas etapas:

    1. Inicie o console de gerenciamento da Microsoft (MMC).
    2. Adicione o snap-in Certificados que gerencia certificados no computador local.
    3. Expanda Certificados (computador local), expanda Particular e expanda Certificados. Um novo certificado deverá existir no armazenamento particular. Na caixa de diálogo Propriedades do certificado, a finalidade exibida é Autenticação do servidor. Este certificado é emitido para o nome do host totalmente qualificado do computador.
  7. Reinicie o controlador de domínio.

Para obter informações adicionais sobre como criar a solicitação de certificado, consulte o seguinte white paper Advanced Certificate Enrollment and Management. Para exibir este white paper, consulte Registro e Gerenciamento de Certificados Avançados.

Verificar uma conexão de LDAPS

Após instalar um certificado, siga essas etapas para verificar se o LDAPS está habilitado:

  1. Inicie a ferramenta de administração do Active Directory (Ldp.exe).

  2. No menu Conexão, clique em Conectar.

  3. Digite o nome do controlador de domínio com o qual deseja se conectar.

  4. Digite 636 como o número da porta.

  5. Clique em OK.

    Deverão ser impressas informações RootDSE no painel à direita, indicando uma conexão bem-sucedida.

Possíveis problemas

  • Iniciar a solicitação extendida de TLS

    A comunicação de LDAPS ocorre pela porta TCP 636. A comunicação de LDAPS para um servidor de catálogo global ocorre por TCP 3269. Ao conectar as portas 636 ou 3269, o SSL/TLS é negociado antes de qualquer troca de tráfego de LDAP.

  • Vários certificados SSL

    Schannel, o provedor SSL da Microsoft, seleciona o primeiro certificado válido que localiza no armazenamento do computador local. Se houver vários certificados válidos disponíveis no armazenamento do computador local, o Schannel pode não selecionar o certificado correto.

  • Problema de armazenamento em cache do certificado SSL anterior ao SP3

    Se um certificado LDAPS existente for substituído por outro certificado, por um processo de renovação ou porque a CA emissora foi alterada, o servidor deverá ser reiniciado para que a Schannel use o novo certificado.

Aprimoramentos

A recomendação original deste artigo é colocar os certificados no armazenamento Particular da Máquina local. Embora essa opção seja compatível, também é possível colocar certificados no armazenamento de certificado Particular do Serviço de NTDS no Windows Server 2008 e em versões posteriores do AD DS (Active Directory Domain Services). Para obter mais informações sobre como adicionar o certificado ao armazenamento de certificados pessoais do serviço NTDS, consulte ID de Evento1220 - LDAP sobre SSL.

O AD DS procura por certificados preferencialmente nesse armazenamento em vez do armazenamento da máquina local. Isso facilita a configuração do AD DS para usar o certificado que você deseja usar. Isso ocorre porque existem diversos certificados no armazenamento Particular das Máquinas Locais e pode ser difícil prever qual está selecionado.

O AD DS detecta quando um novo certificado é colocado no armazenamento de certificados e aciona uma atualização de um certificado SSL sem precisar reiniciar o AD DS ou reiniciar o controlador de domínio.

Uma nova operação rootDse chamada de renewServerCertificate pode ser usada para acionar manualmente o AD DS a fim de atualizar os certificados SSL sem precisar reiniciar o AD DS ou o controlador de domínio. Esse atributo pode ser atualizado utilizando adsiedit.msc ou ao importar a alteração no LDIF (Directory Interchange Format) de LDAP utilizando ldifde.exe. Para obter mais informações sobre como usar lDIF para atualizar esse atributo, consulte renewServerCertificate.

Por fim, se um Windows Server 2008 ou um controlador de domínio da versão posterior encontrar diversos certificados no repositório, ele seleciona aleatóriamente um destes certificados.

Todas funcionam no Windows Server 2008 AD DS e para 2008 Active Directory Lightweight Directory Services (AD LDS). Para AD LDS, coloque os certificados no armazenamento de certificados Particular para o serviço que corresponde à instância de AD LDS em vez do serviço de NTDS.