更新 SSL 证书后服务器瘫痪

更新 SSL 证书后服务器瘫痪

我绝不是这个领域的专家,所以如果这个问题很愚蠢,我深表歉意。我正在更新客户网站上的 SSL 证书,但在更新 conf 文件后,服​​务器宕机了。Apache 无法启动。我只能通过恢复对 conf 文件的更改来解决问题。

以下是我在 conf 文件中写的内容(为了保护隐私,网站名称已隐藏):

# SSLCertificateFile      /etc/ssl/certs/XXXX_XXXX_exp-6-29-25.csr
# SSLCertificateKeyFile /etc/ssl/private/XXXX_exp-6-29-25.key
# SSLCertificateChainFile /etc/ssl/certs/XXX.XXXX.org.pem

error.log 中有以下几个内容:

[Fri Jun 10 15:49:29.281400 2022] [ssl:emerg] [pid 5958] AH02561: Failed to configure certificate XXXX.XXXX.org:443:0, check /etc/ssl/certs/XXXX_XXXX_exp-6-29-25.csr
[Fri Jun 10 15:49:29.281458 2022] [ssl:emerg] [pid 5958] SSL Library Error: error:0909006C:PEM routines:get_name:no start line (Expecting: CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Fri Jun 10 15:49:29.281470 2022] [ssl:emerg] [pid 5958] SSL Library Error: error:140AD009:SSL routines:SSL_CTX_use_certificate_file:PEM lib

我使用的文件类型是否错误?显然我无法发布实际的证书,但如果您有任何想法,请告诉我要检查什么。

谢谢你!

Ubuntu 版本 18.04
Apache2 版本 2.4.29

答案1

如果你只有证书签名请求( .csr) 则您没有证书。您必须将 CSR 发送至认证机构(CA)进行签名并使用您收到的证书(.crt有时.cer.pem,作为您的SSLCertificateFile指示。这对于内部 CA 和公共 CA 来说都是正确的工作流程,尽管验证的具体程序有很大差异。

您可以通过检查 PEM 编码文件的第一行来区分 CSR 和证书:

  • A证书签名请求以。。开始:
    • -----BEGIN CERTIFICATE SIGNING REQUEST-----或者
    • -----BEGIN CERTIFICATE REQUEST-----
  • 证书以 开头-----BEGIN CERTIFICATE-----

相关内容