Platforma

  • System operacyjny: RHEL 5,4
  • Perl: 5.8.8
  • OpenSSL: 0.9.8e
  • Netto::LDAP: 0,33

Detale

Mamy skrypt perla, który monitoruje serwery LDAP używane przez naszą aplikację i wysyła alerty, jeśli nie są one w jakiś sposób osiągalne lub nie działają. Ogólnie działa to dobrze, z wyjątkiem konkretnego serwera LDAP, który akceptuje tylko SSLv2. Tworzenie obiektu LDAP wygląda następująco

my $current_server = Net::LDAP->new('ldaps://10.1.1.1:636/,
                     verify => 'none',
                     sslversion => 'sslv23',
                     timeout => 30 )

Uwaga sslv23, która zgodnie z dokumentacja umożliwia użycie SSLv2 lub 3. Odpowiedni wpis w dokumentacji to

sslversion => 'sslv2' | 'sslv3' | 'sslv23' | „tlsv1”

Jednak powyższe nie działa. Kiedy zmienię „sslversion” na „sslv2”, skrypt działa.

Wniosek

Jak mogę zmusić Net::LDAPS do ponowienia próby z sslv2 jeśli sslv3 nie działa?

Dzięki,

Fred.

1
Friedrich 'Fred' Clausen 17 październik 2012, 13:02

2 odpowiedzi

Najlepsza odpowiedź

Aby odpowiedzieć na moje własne pytanie - nie mogłem znaleźć sposobu, aby biblioteka wróciła do SSLv2, jeśli SSLv3 zawiedzie, więc zrobiłem to we własnym kodzie, najpierw wypróbowując SSLv3, a jeśli to się nie powiedzie, SSLv2. To działa w mojej konkretnej sytuacji.

Każdego, kto ma więcej informacji, zachęcam do komentowania.

0
Friedrich 'Fred' Clausen 19 październik 2012, 19:02
  • Której wersji IO::Socket::SSL używasz?
  • Której wersji Net::SSLeay używasz?

Jeśli spojrzysz na kod źródłowy dla IO::Socket::SSL zobaczysz, że sslv23 oznacza, że ​​użyje Net::SSLeay::CTX_new(), co jest równoważne Net::SSLeay::CTX_v23_new(). SSLv2 mógł zostać usunięty z implementacji CTX_v23_new Twojej biblioteki.

0
dnozay 1 kwiecień 2015, 03:12