Использование StartTLS с Perl-LDAP - PullRequest
2 голосов
/ 10 июля 2010

Я пытаюсь использовать 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)

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 10 июля 2010

Вы уверены, что ваш s_client работает правильно при проверке всей цепочки сертификатов (пропустите параметр -verify)?

«неизвестный алгоритм дайджеста сообщений» означает, что какой-то криптоэлемент в вашемцепочка не поддерживает хеш дайджеста для некоторого сертификата в пути к доверенному корню.

Возможно, промежуточный или корневой сертификат использует проблемный алгоритм хеширования (вероятно, sha256, если выиметь старый openssl или что-то действительно старое, если у вас есть новый).

Убедитесь, что у вас есть недавняя библиотека openssl.См. http://bugs.gentoo.org/294615 для одного примера этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...