我的脚本和服务器之间的SSL握手非常慢。为了更快地重复连接,我希望WWW :: Mechanize重用/恢复以前的SSL会话。这可能吗?
这是一个使用openssl
命令恢复会话的示例。我喜欢WWW :: Mechanize做这样的事情。
此命令将SSL会话参数保存到my_session.pem。这次SSL握手很慢。
openssl s_client -connect my.server:443 -sess_out my_session.pem
此命令使用my_session.pem恢复上一个会话。这种SSL握手很快。
openssl s_client -connect my.server:443 -sess_in my_session.pem
答案 0 :(得分:2)
SSL_session_cache_size
参数在客户端进行显式会话缓存,但默认情况下不会进行会话缓存。
您应该可以使用以下内容启用它:
my $ua = WWW::Mechanize->new;
$ua->ssl_opts( SSL_session_cache_size => 200 );
请注意,这只会创建一个内存缓存。在程序运行之间使用永久缓存当前不是内置的,您需要自己创建这样的东西并使用SSL_session_cache
参数指定它。在您的实现中,您需要在将SSL_SESSION
对象存储到磁盘之前对其进行序列化,因为它们当前只是指向特定于当前进程的内存中位置的指针。