Geralmente, isso significa que você está falando SSL com um servidor não SSL. Verifique o trabalho de configuração no servidor LDAP; o novo certificado parece não estar funcionando ainda.
Eu tenho um servidor Ubuntu 12.04 e estou tentando configurar o Apache para autenticar usando LDAPS. Eu tive alguns problemas - veja minha pergunta anterior , onde concluí que o certificado no servidor LDAP expirou.
Então meu chefe recebeu um certificado "real" do DigiCert e o instalou em myldap.xyz.edu
. E eu fui para myserver.xyz.edu
e tentei openssl s_client -connect myldap.xyz.edu:636 -showcerts
. Veja o que isso me dá:
CONNECTED(00000003)
140075639178912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:504:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 16731 bytes and written 7 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1340655299
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
... E isso me coloca de volta no prompt de comando.
Eu procurei esse erro de "comprimento de dados muito longo" on-line, mas as explicações eram em grande parte gregas para mim. Isso é um problema com o cliente ou o servidor? Tem a ver com o certificado ou alguma outra coisa? O que posso fazer sobre isso? Obrigado!
Editar: fez mais algumas pesquisas e descobriu este tutorial da Microsoft sobre como ativar o LDAP SSL no Active Directory (devo mencionar que o nosso servidor LDAP é o Windows Server 2003 com o SP2 executando o AD). Deu-me os seguintes passos para testar se o LDAPS está ativado:
- Start the Active Directory Administration Tool (Ldp.exe).
- On the Connection menu, click Connect.
- Type the name of the domain controller to which you want to connect.
- Type 636 as the port number.
- Click OK.
RootDSE information should print in the right pane, indicating a successful connection.
Eu usei o desktop remoto em myldap.xyz.edu
e tentei. Aqui está a saída que recebi no painel direito:
ld = ldap_open("myldap.xyz.edu", 636);
Established connection to myldap.xyz.edu.
Retrieving base DSA information...
Result <0>: (null)
Matched DNs:
Getting 1 entries:
>> Dn:
1> currentTime: 06/25/2012 16:57:13 Central Standard Time Central Daylight Time;
1> subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=xyz,DC=edu;
1> dsServiceName: CN=NTDS Settings,CN=MYLDAP,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=xyz,DC=edu;
5> namingContexts: DC=xyz,DC=edu; CN=Configuration,DC=xyz,DC=edu; CN=Schema,CN=Configuration,DC=xyz,DC=edu; DC=DomainDnsZones,DC=xyz,DC=edu; DC=ForestDnsZones,DC=xyz,DC=edu;
1> defaultNamingContext: DC=xyz,DC=edu;
1> schemaNamingContext: CN=Schema,CN=Configuration,DC=xyz,DC=edu;
1> configurationNamingContext: CN=Configuration,DC=xyz,DC=edu;
1> rootDomainNamingContext: DC=xyz,DC=edu;
23> supportedControl: 1.2.840.113556.1.4.319; 1.2.840.113556.1.4.801; 1.2.840.113556.1.4.473; 1.2.840.113556.1.4.528; 1.2.840.113556.1.4.417; 1.2.840.113556.1.4.619; 1.2.840.113556.1.4.841; 1.2.840.113556.1.4.529; 1.2.840.113556.1.4.805; 1.2.840.113556.1.4.521; 1.2.840.113556.1.4.970; 1.2.840.113556.1.4.1338; 1.2.840.113556.1.4.474; 1.2.840.113556.1.4.1339; 1.2.840.113556.1.4.1340; 1.2.840.113556.1.4.1413; 2.16.840.1.113730.3.4.9; 2.16.840.1.113730.3.4.10; 1.2.840.113556.1.4.1504; 1.2.840.113556.1.4.1852; 1.2.840.113556.1.4.802; 1.2.840.113556.1.4.1907; 1.2.840.113556.1.4.1948;
2> supportedLDAPVersion: 3; 2;
12> supportedLDAPPolicies: MaxPoolThreads; MaxDatagramRecv; MaxReceiveBuffer; InitRecvTimeout; MaxConnections; MaxConnIdleTime; MaxPageSize; MaxQueryDuration; MaxTempTableSize; MaxResultSetSize; MaxNotificationPerConn; MaxValRange;
1> highestCommittedUSN: 13287969;
4> supportedSASLMechanisms: GSSAPI; GSS-SPNEGO; EXTERNAL; DIGEST-MD5;
1> dnsHostName: MYLDAP.xyz.edu;
1> ldapServiceName: xyz.edu:[email protected];
1> serverName: CN=MYLDAP,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=xyz,DC=edu;
3> supportedCapabilities: 1.2.840.113556.1.4.800; 1.2.840.113556.1.4.1670; 1.2.840.113556.1.4.1791;
1> isSynchronized: TRUE;
1> isGlobalCatalogReady: TRUE;
1> domainFunctionality: 2 = ( DS_BEHAVIOR_WIN2003 );
1> forestFunctionality: 2 = ( DS_BEHAVIOR_WIN2003 );
1> domainControllerFunctionality: 2 = ( DS_BEHAVIOR_WIN2003 );
-----------
Parece que funcionou, então estou supondo que o Active Directory está pronto para LDAPS.
Editar 2: Por sugestão do @ SilverbackNet, tentei o comando openssl s_client
com a opção -debug
. Aqui está a saída (redigida):
CONNECTED(00000003)
write to 0x24f3470 [0x24f34f0] (226 bytes => 226 (0xE2))
0000 - 16 03 01 00 dd 01 00 00-d9 03 02 4f f3 5a 5b 38 ...........O.Z[8
[...]
00e0 - 01 01 ..
read from 0x24f3470 [0x24f8a50] (7 bytes => 7 (0x7))
0000 - 16 03 01 40 b9 02 ...@..
0007 - <SPACES/NULS>
read from 0x24f3470 [0x24f8a5a] (16567 bytes => 2889 (0xB49))
0000 - 00 4d 03 01 4f f3 5a 5b-46 43 f0 02 76 34 1c d5 .M..O.Z[FC..v4..
[...]
0b40 - 70 3a 2f 2f 63 72 6c 33-2e p://crl3.
read from 0x24f3470 [0x24f95a3] (13678 bytes => 13678 (0x356E))
0000 - 64 69 67 69 63 65 72 74-2e 63 6f 6d 2f 44 69 67 digicert.com/Dig
[...]
3560 - 65 72 20 52 6f 6f 74 20-43 41 0e er Root CA.
356e - <SPACES/NULS>
write to 0x24f3470 [0x25027e0] (7 bytes => 7 (0x7))
0000 - 15 03 01 00 02 02 16 .......
---
no peer certificate available
[...]
De lá, é o mesmo que acima. Eu também posso postar a saída completa da coluna da direita se isso for útil.
Editar 3: Decidimos desistir disso temporariamente e usar a opção do Apache LDAPVerifyServerCert off
com o certificado expirado antigo por enquanto. : ^ (FWIW, meu chefe agora está pensando que é necessário obter um certificado especial, curto (1024 bytes, eu acho que ele disse) para fazer a verificação do servidor LDAP. Ele conhece os detalhes melhor do que eu, mas isso faz sentido porque a mensagem de erro está dizendo que algo é muito grande. Se / quando resolvermos o problema, tentarei postar a resposta.
Geralmente, isso significa que você está falando SSL com um servidor não SSL. Verifique o trabalho de configuração no servidor LDAP; o novo certificado parece não estar funcionando ainda.
Tags ssl openssl ldap certificate