我通常对 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启动完美,一切正常。
我遇到了这个 FAQ 条目,指出 Apache 不支持 2048 位密钥,但我也遇到了这篇博客文章,指出 FAQ 条目必须是旧的(许多条目看起来相当古老),因为它可以完美地运行阿帕奇 2.2.11。
谁能建议为什么 Apache 可能会因新证书而失败?