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

发布于 2024-09-06 01:56:36 字数 329 浏览 3 评论 0原文

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

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

I'm requesting a web page using LWP in perl, and I'd like to be able to access the SSL certificate that the web server presents (I'm looking for an expiration date in the cert, among other things). The information I want isn't in the three headers that Crypt::SSLeay adds to the request. Is there a way that I'm overlooking with which I can get an object reference (ideally) for the SSL cert? I've scanned some perl docs and Google, but it's been a long week and I'm probably just not reading the right thing.

If I can avoid it, I don't want to directly fetch the certificate by making a separate raw SSL connection - since there's an authenticated web proxy in the way and LWP just makes that problem transparently dissapear for me. :) And it's silly to make two connections when the data I need is already being transferred to my machine /somewhere/...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦明 2024-09-13 01:56:36

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

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

None of the callbacks that LWP provides give (intentional) access to the socket, but there does seem to be one potential workaround -- if you provide the keep_alive and conn_cache options to LWP, at the end of the request LWP will call ->deposit on the conn_cache object with the connection socket as an argument. You could either write a dummy conn-cache object, or just "creatively" use the LWP::ConnCache that LWP provides.

Anyway, if you use that backhanded method to get a hold of the socket, it will be a subclass of Net::SSL (assuming you're using ssleay), so you'll be able to just call ->get_peer_certificate on it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文