我们有一个perl脚本,用于监视应用程序使用的LDAP服务器,如果这些服务器无法以某种方式访问或运行,则会发送警报。总的来说,除了仅接受SSLv2的特定LDAP服务器之外,这种方法很有效。 LDAP对象创建如下所示
my $current_server = Net::LDAP->new('ldaps://10.1.1.1:636/,
verify => 'none',
sslversion => 'sslv23',
timeout => 30 )
注意 sslv23 ,根据documentation,允许使用SSLv2或3。文档中的相关条目是
sslversion => 'sslv2'| 'sslv3'| 'sslv23'| '的TLSv1'
但是,上述方法无效。当我将“sslversion”更改为“sslv2”时,脚本会工作。
如果sslv3不起作用,如何让Net :: LDAPS重试sslv2?
谢谢,
佛瑞德。
答案 0 :(得分:0)
要回答我自己的问题 - 如果SSLv3失败,我找不到让库回归到SSLv2的方法,所以我在我自己的代码中通过首先尝试SSLv3来实现,如果失败,则使用SSLv2。这适用于我的具体情况。
我鼓励任何有更多信息的人发表评论。
答案 1 :(得分:0)
IO::Socket::SSL
?Net::SSLeay
?如果您查看source code for IO::Socket::SSL
,您会看到sslv23
表示它将使用Net::SSLeay::CTX_new()
,相当于Net::SSLeay::CTX_v23_new()
。 SSLv2
可能已从您的图书馆CTX_v23_new
实施中删除。