Open Directory: como habilitar o SSL para o Open Directory com réplicas

O protocolo SSL pode ser ativado para oferecer comunicações criptografadas entre um Open Directory Master, uma réplica e os computadores que acessam o domínio do diretório LDAP. O SSL usa um certificado digital para garantir uma identidade certificada para os servidores. Você pode usar um certificado autoassinado ou um certificado obtido de uma autoridade de certificação.

Com os computadores mestre e réplica do Open Directory em vigor:

  1. Verifique se os computadores mestre e réplica do Open Directory são compatíveis com conexões SSL.

  2. Ative a criptografia SSL no Open Directory Master usando um certificado autoassinado e defina o nome comum para o nome de host do mestre.

  3. Ative o SSL em todos os computadores réplicas: crie um certificado autoassinado nos computadores réplicas usando o Server Admin com o mesmo nome comum do nome de host desse computador.

No Terminal, execute este comando:

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [caminho para a chave SSL] -sslcert [caminho para o cert. SSL] -ssldomain [nome do certificado]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [caminho para a chave SSL] -sslcert [caminho para o certificado SSL]

(Por padrão, o Server Admin armazena os certificados em /etc/certificates. Inclua também nomes de arquivos no caminho)

Instalar certificados do mestre e das réplicas do Open Directory

Para que os computadores clientes possam usar SSL, o certificado de cada servidor no cluster de diretório precisa ser copiado para os computadores clientes. Para instalar os certificados dos computadores mestre e réplica do Open Directory, faça o seguinte:

1. Em cada computador cliente, crie o diretório /etc/openldap/certs.

2. Em um computador cliente, abra o Terminal e execute o seguinte comando para obter o certificado do servidor:

openssl s_client -connect [nome de host do servidor]:636

3. Copie as linhas entre "---BEGIN CERTIFICATE---" e "---END CERTIFICATE---" em um arquivo chamado "hostname".

4. Coloque o novo arquivo de nome de host em: /etc/openldap/certs/

5. Você pode testar o certificado usando este comando:

openssl s_client -connect [nome de host do servidor]:636 -CAfile /etc/openldap/certs/hostname

A saída deve ser semelhante à anterior, com a seguinte alteração na última linha: verifique o código de retorno: 0 (ok) em vez do 18 ou 19 que você recebeu anteriormente

6. Se você tem apenas um certificado (por exemplo, um único servidor LDAP com SSL ativado), adicione o seguinte código ao arquivo /etc/openldap/ldap.conf

TLS_CACERT /etc/openldap/certs/[nome de host do servidor]

Se você tem vários servidores LDAP com SSL ativado

Será necessário especificar os servidores individualmente ou colocá-los no mesmo diretório e apontar o ldap.conf para eles seguindo estas etapas:

1. Para cada servidor no cluster LDAP, você precisará obter os certificados como já feito, usando o comando openssl s_client:

openssl s_client -connect [nome de host do servidor]:636

2. Depois de obter os certificados, use o c_hash (um utilitário OpenSSL) para colocar os certificados em um formato de hash. Para cada certificado, o c_hash atribuirá um nome que será usado para renomear o arquivo de certificado em /etc/openldap/certs:

/Sistema/Biblioteca/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

O resultado deve ser semelhante ao seguinte: 03be8eb2.0 => /etc/openldap/certs/hostname

3. Depois de receber o nome do hash, renomeie manualmente o arquivo de cert que já existe.

Exemplo:

mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0

4. Depois de executar todos os certificados com o c_hash, edite o arquivo /etc/openldap/ldap.conf da seguinte forma:

TLS_CACERTDIR /etc/openldap/certs/

5. Remova todas as entradas TLS_CACERTDIR anteriores que possam estar no arquivo ldap.conf.

6. Verifique com o comando ldapsearch:

ldapsearch -v -x -H ldaps://[nome de host do servidor] -b [base de pesquisa]

7. Talvez seja necessário reiniciar o Directory Services se você já tentou configurar o servidor LDAP:

sudo killall DirectoryService

Data da publicação: