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

dan*_*uer 5 perl ssl ssl-certificate lwp

我在perl中请求使用LWP的网页,我希望能够访问Web服务器提供的SSL证书(我正在寻找证书中的过期日期等).我想要的信息不在Crypt :: SSLeay添加到请求的三个标头中.是否有一种我可以忽略的方式,我可以获得SSL证书的对象引用(理想情况下)?我已经扫描了一些perl文档和谷歌,但这是一个漫长的一周,我可能只是没有读正确的东西.

如果我可以避免它,我不想通过建立单独的原始SSL连接来直接获取证书 - 因为有一个经过身份验证的Web代理,LWP只是让这个问题透明地消失了.:)当我需要的数据已经传输到我的机器/某个地方/时,建立两个连接是愚蠢的...

hob*_*bbs 3

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

无论如何,如果您使用该反手方法来获取套接字,它将是Net::SSL(假设您使用的是 ssleay)的子类,因此您将能够调用->get_peer_certificate它。