2010-06-18 36 views
5

我在perl请求一个使用LWP的网页,我希望能够访问Web服务器提供的SSL证书(我正在查找过期日期证书等等)。我想要的信息不在Crypt :: SSLeay添加到请求的三个标头中。有没有一种我可以忽略的方式,我可以通过它获得SSL证书的对象引用(理想情况下)?我已经扫描了一些perl文档和Google,但已经过了很长的一周,而且我可能只是没有阅读正确的内容。检查通过LWP请求返回的SSL证书

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

+0

相关:http://stackoverflow.com/questions/74358 – daxim 2010-06-18 22:10:35

回答

3

LWP提供的任何回调(有意)访问套接字都没有,但是似乎是一种潜在的解决方法 - 如果您向LWP提供keep_aliveconn_cache选项,请求结束时LWP将以连接套接字为参数在conn_cache对象上调用->deposit。你可以写一个虚拟conn-cache对象,或者“创造性地”使用LWP提供的LWP::ConnCache。无论如何,如果你使用退避方法来获取套接字,它将是Net::SSL的一个子类(假设你使用的是ssleay),所以你可以直接调用->get_peer_certificate

+1

这是脏兮兮和邪恶之间的地方,但是/看起来/像它会工作。 :) 谢谢。 – dannysauer 2010-06-20 13:47:21