我正在使用带有启用 SSL 的 VirtualHost 的 IBM IHS Http-Server。
我的问题是,服务器在客户端请求后随机请求客户端证书,但它应该只请求一次并缓存会话。
如果我关闭 KeepAlive,则在每次客户端请求后都会请求客户端证书(这当然是正常行为),但是由于SSLCacheEnable
已打开,我会等待连接被缓存,并且在第一次请求后仅请求一次客户端证书。
您知道什么原因可能导致了这个问题吗?
(更新:在我的情况下,客户端不是 Web 浏览器,而是 Java Fat-client 应用程序。在客户端日志中,我打开了 SSL 跟踪,并且每次请求后都会看到“ServerHelloDone”,这是不希望的。)
答案1
HTTP Keep Alive 仅意味着多个 HTTP 请求能通过同一个 TCP 连接发送,但并非所有请求将要甚至必须通过单个连接发送。首先,除非使用 HTTP/2,否则即使使用保持活动,浏览器通常也会打开到同一站点的多个连接。然后,服务器和浏览器都可以在每次响应后关闭连接。即使在服务器上设置较大的保持活动超时也不会影响客户端何时关闭连接。