解决 SSL 连接时间过长的问题

解决 SSL 连接时间过长的问题

自几天以来,我在连接我的网站时有时会遇到 SSL 连接时间过长的问题。

SSL 连接时间过长

但我不知道该问题的根源。

当一切正常时,

openssl s_client -connect localhost:443

在不到 50 毫秒的时间内返回响应。但是当我面对缓慢的连接时,此命令会在 5-10 秒内返回响应。


因此,我决定使用一些指标(例如内存、CPU、Apache 打开的文件数量、http 会话)来监控我的网络服务器,但它们似乎都与问题无关。

当我使用 HTTP 而不是 HTTPS 浏览我的网站时,没有遇到此问题。

在 Chrome 开发工具的安全面板中,它告诉我该证书有效。

您能帮我找到问题的根源吗?


更新#1:

这是我的 /etc/apache2/mods-enabled/ssl.conf:

SSLRandomSeed startup builtin SSLRandomSeed startup file:/dev/urandom 512 SSLRandomSeed connect builtin SSLRandomSeed connect file:/dev/urandom 512

cat /proc/sys/kernel/random/entropy_avail 返还给我约800元。

答案1

如果延迟确实发生在 SSL 会话协商中,你可能需要检查SSLRandomSeed指令指向/dev/random。/dev/random 非常安全,但是当你的系统熵不足时它也会被阻止(请使用 检查cat /proc/sys/kernel/random/entropy_avail)。

改为SSLRandomSeed使用/dev/urandom(永不阻塞)通常是解决该问题的方法。

相关内容