拥有合法的 SSL 证书,但安装失败

拥有合法的 SSL 证书,但安装失败

我正在运行一个 Ubuntu 10.04 LTS 服务器,到目前为止,该服务器一直使用自签名证书运行 Apache2。我终于购买了一个真正的证书,但我无法安装它。我从提供商那里收到了三个文件:

AddTrustExternalCARoot.crt
mynewdomain_com.crt
PositiveSSLCA2.crt

目前,在我的 sites-enabled/ssl 中,我有这个作为我的自签名证书:

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/cert.pem

因此我在 Google 上搜索了如何将 crt 文件转换为 pem,它看起来只是所有 crt 文件的组合。 是我找到的与我使用的最匹配的指南(我现在使用 namecheap 作为我的 DNS)。所以我创建了我的新 pem 文件,并将我的配置指向它。当我运行

service apache2 restart

守护进程无法启动。我想我一定是把 crts 的顺序搞错了,但它仍然无法启动。我做错了什么?我该如何使用我的新证书?

至于密钥文件,我生成了一个名为 server.key 的文件(用于创建我的 csr)。它现在位于 /etc/apache2/server.key

启动 Apache 时出现以下错误:

[Sat Mar 17 13:44:43 2012] [warn] RSA server certificate is a CA certificate  (BasicConstraints: CA == TRUE !?)
[Sat Mar 17 13:44:43 2012] [warn] RSA server certificate CommonName (CN) `PositiveSSL CA 2' does NOT match server name!?
[Sat Mar 17 13:44:43 2012] [error] Unable to configure RSA server private key
[Sat Mar 17 13:44:43 2012] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

答案1

您能提供有关如何生成证书的信息吗?

.key您缺少用于生成发送给证书颁发机构的文件的私钥(可能是文件) .csr。Apache 需要该特定私钥才能使用您获得的公钥。

编辑:

使用该密钥文件,您将需要将如下内容添加到您的配置中:

SSLCertificateKeyFile /etc/apache2/server.key

确保将文件设置为某种权限模式,使服务器上的所有内容都无法查看该文件 - 模式 600 应该不错。

如果添加后仍无法启动,请告诉我出现了什么错误(在控制台上或 Apache 错误日志中)。

通过.crt连接在一起的文件,你的 Apache 服务器应该可以正确发送完整的证书链;你可以验证它是否正常工作openssl s_client -connect localhost:443 -showcerts

答案2

RSA server certificate is a CA certificate意味着您已指定 CA 的证书作为证书文件,而不是您自己的证书(由 CA 签名)。

您可能想要尝试替换SSLCertificateFile由 CA 签名的 crt 的路径,而不是 CA 证书本身。

更新:更详细的解释:

你应该有 3 个文件:

  1. 密钥(通常以 .key 为扩展名)。这是最重要的一个。您应该保密,并且永远不要将其发送给任何人。此文件实际上用于加密数据。您应该在SSLCertificateKeyFile指令中指定此文件的路径。

  2. 您的 CA 证书。这是您用来签署公钥的证书颁发机构的公共证书。您应该在SSLCACertificateFile指令中指定此文件的路径。

  3. 已签名的公钥。这是您从密钥文件(以证书请求的形式)中提取的密钥的公共部分,并发送给 CA 进行签名。您应该在SSLCertificateFile指令中指定此文件的路径。

答案3

我从未从“真正的”CA 请求证书,在我的测试中我也创建了 CA。

但是,在 apache2 配置中,我还配置了 CA 证书的路径,您可以检查一下,以防万一。

相关内容