Open Directory: ativar o SSL para um Open Directory com réplicas

O Secure Sockets Layer (SSL) pode ser ativado para facultar comunicações cifradas entre um Open Directory principal, uma réplica e os computadores com acesso ao domínio de diretório LDAP. O SSL utiliza um certificado digital para atribuir uma identidade certificada aos servidores. Pode utilizar um certificado autoassinado ou um certificado obtido a partir de uma autoridade de certificação.

Com o Open Directory principal e os computadores de réplica devidamente instalados:

  1. Certifique-se de que tanto o Open Directory principal como os computadores de réplica suportam ligações SSL.
  2. Ative a cifragem SSL no Open Directory principal através de um certificado autoassinado com o nome comum configurado para o nome de host do referido Open Directory principal.
  3. Ative o SSL em todos os computadores de réplica: crie um certificado autoassinado nos computadores de réplica através da Administração do servidor com o mesmo nome comum ao nome de host do computador em questão.

No Terminal, execute o seguinte comando:

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert] -ssldomain [name of the certificate]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert]

(Por predefinição, a Administração do servidor armazena os certificados em /etc/certificates. Certifique-se também de que inclui os nomes de ficheiros no caminho)

Instalar certificados do Open Directory principal e das réplicas

Para os computadores clientes poderem utilizar o SSL, o certificado de cada servidor do conjunto de diretórios terá de ser copiado para os computadores clientes. Para instalar os certificados do Open Directory principal e dos computadores de réplica:

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

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

openssl s_client -connect [hostname of the server]:636

3. Copie as linhas entre "---BEGIN CERTIFICATE---" e "---END CERTIFICATE---" para um ficheiro denominado "hostname".

4. Coloque o novo ficheiro "hostname" aqui: /etc/openldap/certs/

5. Pode testar o certificado através do seguinte comando: 

openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname

Isto deverá apresentar um resultado semelhante ao anterior, com a alteração seguinte na última linha: verify return code:0(ok) em vez do 18 ou 19 obtidos anteriormente

6. Se apenas tiver um certificado (por exemplo, um único servidor LDAP com o SSL ativado), adicione o seguinte ao ficheiro /etc/openldap/ldap.conf

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

Se tiver vários servidores LDAP com o SSL ativado

Terá de especificar os servidores de forma individual ou colocá-los todos no mesmo diretório e direcionar ldap.conf para os mesmos através dos seguintes passos:

1. Para cada servidor do conjunto LDAP, terá de obter os certificados da mesma forma que o fazia anteriormente através do comando openssl s_client:

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

2. Uma vez obtidos os certificados, utilize c_hash (um utilitário OpenSSL) para obter os mesmos num formato de hash. Por cada certificado, c_hash atribuir-lhe-á um nome que será utilizado para alterar o nome do ficheiro do certificado em /etc/openldap/certs:

/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

O resultado deverá assemelhar-se ao seguinte:  03be8eb2.0 =>/etc/openldap/certs/hostname

3. Uma vez recebido o nome hash, altere manualmente o nome do ficheiro cert existente.

Exemplo:

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

4. Uma vez executados todos os certificados através de c_hash, edite o ficheiro /etc/openldap/ldap.conf com:

TLS_CACERTDIR /etc/openldap/certs/

5. Remova quaisquer entradas TLS_CACERTDIR anteriores que possam estar no ficheiro ldap.conf.

6. Confirme com o comando ldapsearch:

ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]

7. Se já tiver tentado configurar o servidor LDAP, poderá ter de reiniciar os Serviços de directório:

sudo killall DirectoryService
Data de publicação: