我的任务是在他们的服务器上更新我们的一个客户的证书。问题是,不仅我以前从未这样做过,而且我读过的所有网站所涉及的过程似乎都不适合我。
首先,在我的客户获得新证书之前,我从未向他们提供过密钥文件,我的印象是他们需要它来生成它。
其次,服务器上唯一的其他证书文件是来自 Verisign 的通用证书文件,而不是像我发送的新证书那样特定于域的文件。
最后,我收到的是一个 .cer 文件,它显然和 .crt 文件一样好,但它让我更加怀疑它是错误的证书。
我的 ssl.conf 指的是证书是这样的;
SSLCertificateFile /etc/httpd/ssl/ssl.cert.pem
SSLCertificateKeyFile /etc/httpd/ssl/ssl.key
SSLCACertificateFile /etc/httpd/ssl/ca.crt <<< This is the verisign one
所以,基本上,我有一个 .cer 文件、一个 conf 和一个服务器,但对我来说似乎都不合适。我真的很想得到任何帮助。
谢谢,
基督教
你有很多东西要学。SSL 是一种棘手的害虫。第一个问题是:当前安装的证书对于他们托管的域(模到期日期)是否有效(由“真实”CA 等颁发)?如果是这样,事情就容易一些了。
哦,顺便说一句,之前设置它的人显然有点 RHEL 怪胎,因为
/etc/httpd
Ubuntu 不是存放它的地方。那可能会咬你一口。首先,“威瑞信”证书
/etc/httpd/ssl/ca.crt
不是最终用户证书,而是颁发前一个证书的 CA 的证书。如果您从不同的 CA 获得新证书,则可能需要更改。听起来,如果是续订(并且以前的证书有效),则新证书可能是从现有密钥生成的。没关系——毕竟密钥是私有的,不需要每年更改。要检查它们是否排队,请运行:
并检查每个命令输出的模数数据。如果它们相同,则新证书是从旧密钥生成的,并且一切都可能正常。如果它们不同,那么您需要获取生成证书的密钥并使用它。如果 openssl 抱怨证书文件的格式无效,那么您的猜测是正确的,该文件不好,需要转换或重新发布。(在这种情况下,粘贴 cert 文件,有人可能会识别该格式并能够告诉您如何转换它)。
要安装新证书(可能还有密钥),请重命名现有文件,然后将新文件复制到位。重新启动 Apache(完全重新启动是最安全的,但如果您只更改了证书,则重新加载应该可以解决问题)。检查 Apache 是否已恢复,使用 HTTPS 访问该站点应在证书上报告新的到期日期。如果有问题,最好将旧文件移回原位(这就是我们首先将它们移开的原因),然后检查日志中的错误以查看问题所在以及如何修复它。