如何判断 SSL 会话缓存是否在 Apache 2.2 中正常运行?

如何判断 SSL 会话缓存是否在 Apache 2.2 中正常运行?

我们在 Ubuntu 12.04 上运行 Apache 2.2.22。

SSL 已配置并启用,其中包含以下指令/etc/apache2/mods-enabled/ssl.conf

SSLSessionCache shm:/var/www/apache-ssl-cache/ssl_scache(512000)
SSLSessionCacheTimeout  300
SSLMutex file:/var/www/apache-ssl-cache/ssl_mutex

SSL 似乎可以正常工作。我们可以通过 HTTPS 访问该网站,即使在 Windows XP 上的 IE8 中也是如此。但是,我们不确定 SSL 会话缓存是否真的正常工作。

我们在虚拟主机的日志中看到很多这些信息级别的消息:

[info] [client <censored>] (70007)The timeout specified has expired: SSL input filter read failed.

或者

[info] [client <censored>] (70014)End of file found: SSL input filter read failed.

或者

[info] [client <censored>] (70014)End of file found: SSL handshake interrupted by system [Hint: Stop button pressed in browser?!]

PRNG 播种似乎也经常发生。不幸的是,似乎无法可靠地判断 PRNG 正在为哪个分叉的 Apache 子进程播种:

[info] Seeding PRNG with 656 bytes of entropy

那么这些消息是否表明 SSL 会话缓存不起作用(跨分叉的 apache 子进程)?

编辑

我发现很多网站都提到了使用openssl s_client -reconnectgnutls-cli -Vr测试 SSL 会话缓存。我相信它们只回答了部分问题:因为这两个程序断开然后重新连接,他们只确认 SSL 会话已被缓存并且可以重复使用依次但它们不检查缓存的 SSL 会话是否可以使用同时通过多个分叉服务器将资源分发到同一个客户端。这实际上是现代浏览器从 HTTPS 网站提取资源时的典型使用场景)。

为了检查缓存的 SSL 会话是否可以同时使用,在使用相同 SSL 会话 ID/密钥打开下一个测试连接之前,不能关闭第一个测试连接。不幸的是,这两个实用程序似乎都没有这样的选项。

答案1

您可以使用其中一个 SSL 分析网站进行检查(例如Qualys 的 SSL 服务器测试)。查看“会话恢复测试”的结果:如果结果为“是”,则表示您的会话缓存正在运行。

相关内容