Perl LWP SSL连接:证书验证失败

Perl LWP SSL连接:证书验证失败,perl,ssl,https,lwp,Perl,Ssl,Https,Lwp,我的应用程序需要SSL下的LWP,但我似乎无法让它在没有收到错误的情况下正确连接 certificate verify failed)LWP::Protocol::https::Socket:SSL连接尝试失败,错误未知:14090086:SSL例程:SSL3\u GET\u SERVER\u证书:证书验证在C:/Perl/site/lib/LWP/Protocol/http.pm第51行失败。 每当我在服务器上的FireFox中加载网站时,我都会收到 此连接不受信任(技术错误:sec\u错误\

我的应用程序需要SSL下的LWP,但我似乎无法让它在没有收到错误的情况下正确连接

certificate verify failed)LWP::Protocol::https::Socket:SSL连接尝试失败,错误未知:14090086:SSL例程:SSL3\u GET\u SERVER\u证书:证书验证在C:/Perl/site/lib/LWP/Protocol/http.pm第51行失败。

每当我在服务器上的FireFox中加载网站时,我都会收到

此连接不受信任(技术错误:sec\u错误\u未知\u颁发者)

无论何时我在Chrome中加载它,它都会非常好

我可以在我的计算机上的FireFox和Chrome中加载页面,并且完全不会收到SSL验证错误

我不知道我的电脑和我的服务器有什么不同;他们都使用完全相同的FireFox版本,所以我不确定为什么不能在上面正确验证

我在PERL脚本中加入了
$ENV{PERL\u LWP\u SSL\u VERIFY\u HOSTNAME}=0
,尝试了一些变通方法,但它似乎仍然抛出了相同的错误

有人知道这方面的解决方案或解决方法吗

我尝试了一些变通方法,将$ENV{PERL\u LWP\u SSL\u VERIFY\u HOSTNAME}=0

正如该选项的名称所暗示的,它只关心禁用对证书的主机名检查。它不会禁用证书链的验证

每当我在我的服务器上用FireFox加载网站时,我都会收到

由于Firefox和LWP会出现验证错误,而Chrome不会出现验证错误,因此Chrome可能有一个额外的CA作为受信任的CA,而其他人则没有

从您的代码来看,您似乎在使用Windows,从我的理解来看,Firefox自带了自己的CA存储,LWP使用Mozilla::CA(其中包含Firefox通常附带的CA),而Chrome使用的是系统CA存储。因此,系统存储中可能存在Firefox和LWP不知道的CA

虽然默认的Windows CA应用商店可能知道某些特殊的秘密CA,但Firefox不知道,但更有可能的是,您位于某个SSL检查防火墙之后,管理员将必要的代理证书添加到Windows CA应用商店,而不是Firefox或LWP的应用商店。我建议您检查Chrome浏览器中的证书链,并查看顶部(内置)证书

如果您认为CA可信,您可以导出它并将其导入Firefox中。您还可以通过将LWP保存为PEM格式使其使用此CA,然后将

PERL\u LWP\u SSL\u CA\u PATH
环境变量设置为指向保存的文件,或使用
SSL\u opts
设置中的
SSL\u CA\u PATH
选项使LWP使用此CA证书进行验证

如果此解释无法提供解决方案,请提供有关您尝试访问的目标URL和网络设置的更多详细信息,特别是如果存在SSL拦截代理或防火墙。请提供有关您正在使用的LWP版本的信息,因为版本6发生了很多变化。

可能相关:,