我有 Apache 服务器的问题。最初的 SSL 握手大约需要 5-7 秒,这太可怕了。之后响应时间以毫秒为单位 - 但消息必须在第一个之后立即发送,否则握手将在几秒钟不活动后再次完成。有没有办法通过Apache配置来加速它?
这是一些 Linux 发行版,对吧?
这台服务器大部分时间是空闲的吗?也许 Apache 正在从/dev/random铲除随机性。这有时会很慢,因为/dev/random需要“真正的”随机性;诸如移动鼠标、使用键盘和网络流量之类的东西会收集熵。如果内核熵池几乎为空,则需要随机性的进程往往会停止(长时间)。
如果是这种情况,cat /proc/sys/kernel/random/entropy_avail在 SSL 握手期间应该接近零。
您可以使用Apache 指令将随机源切换到/dev/urandom,但请注意,这在理论上不如 /dev/random 安全。SSLRandomSeed
其他解决方案是使用守护进程rngd(可从rng-tools许多 Linux 发行版的包中获得)来填充熵池。