TLS_REQCERT e PHP com LDAPS

2

Problema:
Consultas LDAP seguras via linha de comando e PHP para um controlador de domínio AD com um certificado auto-assinado.

Contexto:
Eu estou trabalhando em um projeto onde eu preciso habilitar consultas LDAP de um aplicativo da web PHP para um controlador de domínio do MS AD que está usando um certificado autoassinado. Este certificado auto-assinado também está usando um nome de domínio que não é um FQDN - pense em algo como people.campus como nome de domínio. O aplicativo da Web pegaria as credenciais do usuário e passaria para o controlador de domínio do AD para verificar se as credenciais são compatíveis ou não. Isso parece simples, mas estou tendo problemas para fazer com que o PHP e o certificado auto-assinado funcionem.

Algumas pessoas sugeriram que eu mudei a variável TLS_REQCERT de "request" para "never" na configuração do OpenLDAP. Preocupa-me que isso possa ter implicações maiores, como um ataque man-in-the-middle, e não me sinto à vontade para mudar essa configuração para nunca. Eu também li alguns lugares on-line onde um pode pegar um certificado e colocá-lo como uma fonte confiável dentro do arquivo de configuração do openldap. Estou curioso para saber se isso é algo que eu poderia fazer pela situação que tenho? Posso, na linha de comando, obter o certificado autoassinado que o controlador de domínio do AD está usando, salvá-lo em um arquivo e, em seguida, ter o Openldap usando esse arquivo para a confiança de que ele precisa para que eu não precise ajustar o certificado. variável de pedido para nunca? Eu não tenho acesso ao controlador de domínio do AD e como resultado não é possível exportar o certificado. Se houver uma maneira de obter o certificado a partir da linha de comando, quais comandos eu preciso usar? Existe um método alternativo de lidar com esse problema que seria melhor a longo prazo? Eu tenho alguns servidores CentOS e alguns servidores Ubuntu com os quais estou trabalhando para tentar fazer isso acontecer.

Agradecemos antecipadamente por sua ajuda e ideias.

    
por John 14.03.2011 / 22:59

1 resposta

1

Se o seu certificado autoassinado for assinado por sua autoridade de propriedade, você poderá verificar se o certificado fornecido está correto verificando o certificado do servidor. Para fazer isso, adicione em seu ldap.conf a linha 'TLS_CACERT /etc/ssl/certs/ca.pem' com ca.pem é o arquivo com chave pública de sua autoridade. Com 'TLS_REQCERT hard', ele verifica sua conexão e se recusa a falar se o seu servidor de certificados estiver incorreto.

Se você tiver apenas o certificado, você pode TALVEZ (eu não tente) adicionar sua chave pública para TLS_CERT / TLS_CACERT.

    
por 22.03.2011 / 17:04