如何判断 SSL 会话缓存实际上是否与 Apache 2.2 一起正常工作?

Kal*_*Kal 8 mod-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
Run Code Online (Sandbox Code Playgroud)

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

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

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

或者

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

或者

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

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

[info] Seeding PRNG with 656 bytes of entropy
Run Code Online (Sandbox Code Playgroud)

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

编辑

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

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

Flu*_*lup 4

您可以使用 SSL 分析站点之一(例如Qualys 的 SSL 服务器测试)进行检查。查找“会话恢复测试”的结果:如果显示“是”,则您的会话缓存正在工作。