我通常对 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 可能会因新证书而失败吗?