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