Я пытаюсь использовать Net :: LDAP в Perl для проверки подлинности LDAPS на моем Active Directory Server 2008, и мне трудно заставить проверку сервера работать.Это работает, если в start_tls
я использую verify=> 'none'
, но это не так здорово.
Когда я использую verify => 'require'
(что предпочтительно), я получаю эту ошибку:
Сбой попытки подключения SSL с неизвестной ошибкой: 0D0C50A1: подпрограммы кодирования asn1: ASN1_item_verify: неизвестноалгоритм дайджеста сообщений в ./ldap.pl строка 23, строка 522.
Когда я тестирую из командной строки с использованием Openssl s_client, он отлично работает, поэтому я не думаю, что это проблема OpenSSL.Я вроде Noob с Perl, поэтому я не уверен, что еще нужно отлаживать.
Вот соответствующий фрагмент кода:
#!/usr/bin/perl
use Net::LDAP;
$ldap = Net::LDAP->new('ho.mydomain.com',
) or die "LDAP error";
$mesg = $ldap->start_tls(
sslversion => 'tlsv1',
verify => 'require',
capath => '/etc/ssl/certs/',
);
die $mesg->error if $mesg->is_error;
Вывод из OpenSSL s_client:
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES128-SHA
Session-ID: [removed]
Session-ID-ctx:
Master-Key: [removed]
Key-Arg : None
Start Time: 1278707544
Timeout : 300 (sec)
Verify return code: 0 (ok)
Любая помощь будет принята с благодарностью.
Спасибо