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:
Certifique-se de que tanto o Open Directory principal como os computadores de réplica suportam ligações SSL.
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.
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 [caminho para a chave SSL] -sslcert [caminho para o certificado 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 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 no 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 [nome de host do servidor]: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 [nome de host do servidor]: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 de 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 todas as entradas TLS_CACERTDIR anteriores que possam estar no ficheiro ldap.conf.
6. Confirme com o comando ldapsearch:
ldapsearch -v -x -H ldaps://[nome de host do servidor] -b [pesquisar]
7. Se já tiver tentado configurar o servidor LDAP, poderá ter de reiniciar os Serviços de diretório:
sudo killall DirectoryService