自几天以来,我在连接我的网站时有时会遇到 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
(永不阻塞)通常是解决该问题的方法。