使用 Apache 更新 SSL 证书

使用 Apache 更新 SSL 证书

我的一个 Linux / Apache 网站上的 VeriSign 证书即将过期。我打算从 VeriSign 购买续订证书。

使用 Apache 更新证书的最佳方法是什么?我是否必须生成新请求并重新开始?我应该注意哪些陷阱?

答案1

您可以重新提出当前证书的请求。然而这确实(在理论上)降低了安全性。

实际上,只要你的密钥正确生成,并且从未在存在 SSL 熵问题的 Debian 或 Ubuntu 机器上使用过正式受信任的人仍然拥有密钥的副本,这没有任何问题。

我通常只是重新签名,尽管正如我上面所说,如果您有任何顾虑,只需生成一个新证书即可。这是相同的过程。

答案2

如果您选择使用 VeriSign 上保存的副本来续订证书:

  1. 转到 VeriSign 网站并选择使用存储的 CSR。当您选择在其网站上更新证书时,这将是复选框。
  2. 一旦他们完成了请求的处理,新的证书将通过电子邮件发送给您。
  3. 将电子邮件中的证书保存到服务器上的新文件中,并配置 ssl.conf 或 httpd.conf SSLCertificateFile 指令以指向新文件。
  4. 可能需要(对我来说):转到此 VeriSign 链接,下载 VeriSign 的新中间证书并将其保存到文件中。然后更改 SSLCACertificateFile 指令以指向该新文件。
  5. 重启 Apache

答案3

您不必重新生成请求(证书签名请求,或 csr),因为签名机构已应用了有效期。如果您愿意,您也可以提交原始 csr 进行签名,但请注意,生成的证书不同的,因为签名部分已经改变。重新使用 csr 的优点是您不必弄乱证书的密钥部分。

答案4

如果您有现有的签名请求,您可以再次提交该请求,不会出现任何问题。许多注册商实际上会保留您上一份 csr 的副本,以备续订。如果那不是一个选择,则可以轻松生成新的 csr:

openssl req -new -key <server>.key -out <server>.csr

确保输入通用名称 (CN) 作为 URL 中使用的地址,以防止客户端发出警告。

我喜欢在自己的服务器上保留旧证书,并根据颁发日期(或到期日期)将我的 /etc/ssl/certs 文件夹按年份组织起来。这有助于我跟踪证书续订的次数以及下次续订的时间。

作为参考,如果您也想要一个新密钥,您需要执行以下操作。在这种情况下,您需要从此密钥生成一个新的 csr。

openssl genrsa 1024 -out <server>.key
chown root <server.key>; chmod go-rwx <server.key>

相关内容