gpt4 book ai didi

perl - WWW::Mechanize 能否恢复之前的 SSL session ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:31 25 4
gpt4 key购买 nike

我的脚本和服务器之间的 SSL 握手非常慢。为了更快地进行重复连接,我希望 WWW::Mechanize 重用/恢复以前的 SSL session 。这可能吗?

这是一个使用 openssl 命令恢复 session 的示例。我想要 WWW::Mechanize 做这样的事情。

此命令将 SSL session 参数保存到 my_session.pem。此 SSL 握手很慢。

openssl s_client -connect my.server:443 -sess_out my_session.pem

此命令使用 my_session.pem 恢复上一个 session 。此 SSL 握手速度很快。

openssl s_client -connect my.server:443 -sess_in my_session.pem

最佳答案

WWW::Mechanize 基于 LWP::UserAgent,它本身在其当前版本(自版本 6)中使用 IO::Socket::SSL 作为默认后端。 IO::Socket::SSL使用 SSL_session_cache_size 参数在客户端支持显式 session 缓存,但默认情况下不进行 session 缓存。

你应该可以用这样的东西来启用它:

 my $ua = WWW::Mechanize->new;
$ua->ssl_opts( SSL_session_cache_size => 200 );

请注意,这只会创建一个内存缓存。拥有一个可以在程序运行之间使用的永久缓存目前不是内置的,您需要自己创建这样的东西并使用 SSL_session_cache 参数指定它。在您的实现中,您需要注意序列化 SSL_SESSION 对象,然后再将它们存储到磁盘,因为它们目前只是指向特定于当前进程的内存中位置的指针。

关于perl - WWW::Mechanize 能否恢复之前的 SSL session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com