![Apache 2.2 使用 2048 位 RSA 密钥时出现“无法写入‘随机状态’”的错误(1024 位密钥可以正常工作)](https://linux22.com/image/625402/Apache%202.2%20%E4%BD%BF%E7%94%A8%202048%20%E4%BD%8D%20RSA%20%E5%AF%86%E9%92%A5%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E6%97%A0%E6%B3%95%E5%86%99%E5%85%A5%E2%80%98%E9%9A%8F%E6%9C%BA%E7%8A%B6%E6%80%81%E2%80%99%E2%80%9D%E7%9A%84%E9%94%99%E8%AF%AF%EF%BC%881024%20%E4%BD%8D%E5%AF%86%E9%92%A5%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%EF%BC%89.png)
我通常对 Apache 和 OpenSSL 很在行,但这个却让我完全困惑。我在 Ubuntu 12.04 LTS 服务器上运行 Apache 2.2.22 和 OpenSSL 1.0.1。我配置了一个基于 IP 的虚拟主机,它将所有 HTTP 请求重定向到 HTTPS,并使用严格的传输安全性来帮助保持这种状态。
我正在将网站从内部 CA 颁发的证书迁移到 StartSSL 签名的证书。当前证书具有 1024 位 RSA 密钥,新证书具有 2048 位 RSA 密钥。服务器有一个或两个其他 SSL 虚拟主机,它们都使用 1024 位密钥。当前证书运行正常。
两个证书的密钥位于同一目录中,由 root 拥有,并具有600
权限(目录为710
)。证书位于不同的目录中,由 root 拥有,并具有644
权限(目录为755
)。(例如,两个密钥都在 中/var/ssl/keys
,两个证书都在 中/var/ssl/certs
。)
但是,当我更改配置以使用新证书时(这是仅有的更改,我不更新主机名或其他任何内容)Apache 拒绝启动,并给出“无法写入‘随机状态’”错误。我已经检查过了,我没有任何(root 拥有或其他).rnd
文件闲置。如果我改回 1024 位证书,Apache 可以完美启动,一切正常。
我碰到此常见问题解答条目,指出 Apache 不支持 2048 位密钥,但我还遇到了这篇博文指出常见问题解答条目肯定很旧(许多条目确实看起来相当古老),因为它在 Apache 2.2.11 上运行良好。
有人能解释为什么 Apache 可能会因新证书而失败吗?