通过LWP请求返回的SSL证书检查

5
我正在使用Perl中的LWP请求一个网页,并且我想要访问Web服务器提供的SSL证书(我想获取证书中的过期日期等信息)。Crypt::SSLeay添加到请求中的三个头信息中并没有我需要的信息。是否有我忽略的方法可以获取SSL证书的对象引用(最好是)?我已经查阅了一些Perl文档和谷歌,但这已经是漫长的一周了,我可能只是没有读到正确的内容。
如果可以避免,我不想通过建立独立的原始SSL连接直接获取证书,因为在这之间有一个经过身份验证的Web代理,而LWP会使这个问题自动地消失。:) 当我需要的数据已经被传输到我的机器/某个地方时,进行两次连接是愚蠢的...

相关链接:https://dev59.com/B3VD5IYBdhLWcg3wI4CM - daxim
1个回答

3

LWP提供的回调函数都没有(有意地)访问套接字的权限,但似乎有一种潜在的解决方法——如果你向LWP提供keep_aliveconn_cache选项,在请求结束时,LWP将使用连接套接字作为参数在conn_cache对象上调用->deposit。你可以编写一个虚拟的conn-cache对象,或者只是“创造性地”使用LWP提供的LWP::ConnCache

无论如何,如果您使用这种间接的方法来获取套接字,它将是Net::SSL的子类(假设您正在使用ssleay),因此您将能够在其上调用->get_peer_certificate


1
那有点肮脏和邪恶,但看起来似乎会有效。 :) 谢谢。 - dannysauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接