设置多个 SSL 证书。证书和私钥不匹配

设置多个 SSL 证书。证书和私钥不匹配

我正在尝试在运行 apache 的 Ubuntu VPS 上设置多个 SSL 证书。之前我只有一个域名的证书,但现在我想为另一个域名设置一个证书。

我购买了 SSL 证书,并收到一个 .crt 文件,我将其上传到/etc/apache2/ssl/www_domain_com/domain.crt。在我的虚拟主机配置中,我有以下两行

SSLCertificateFile     /etc/apache2/ssl/www_domain_com/www_domain_com.crt
SSLCertificateKeyFile  /etc/apache2/ssl/www_domain_com/server.key

目前这个功能是有效的,因为我的 apache 错误日志显示两者不匹配,但我不明白 server.key 文件需要包含什么?我购买 SSL 证书时应该收到这个吗?

我有一个用于其他域的 server.key 文件,并且已为其成功设置了证书,我需要使用该文件吗?

有人可以解释一下这个文件的用途以及我需要如何生成它吗?

答案1

回答您的所有问题(对于将来偶然遇到此问题的任何人):

目前这是可行的,因为我的 apache 错误日志说两者不匹配,但我不明白 server.key 文件需要包含什么?

它需要包含一个私钥。

当我购买 SSL 证书时应该发送此信息给我吗?

通常不会。当您从公共证书颁发机构 (CA) 购买 TLS 证书时,您会提供证书签名请求 (CSR),他们会提供相应的签名证书以及链接回其受信任根证书的证书链。CSR 是根据您在本地生成的私钥创建的。(注意:req -x509您在评论中提到的命令将生成自签名证书,而不是 CSR。)

我有一个用于其他域的 server.key 文件,并且已为其成功设置了证书,我需要使用该文件吗?

假设您想托管两个域:是的。设置单个 Apache 实例来提供多个安全域需要使用服务器名称指示 (SNI),这是 TLS 扩展。您必须为要托管的每个域单独配置 Apache。VirtualHost有关详细信息,请参阅 Apache 指令。

有人可以解释一下这个文件的用途以及我需要如何生成它吗?

创建 CSR 的过程首先涉及创建私钥。在将 CSR 发送给 CA 之前,您应该已经完成​​此步骤。有些网站可以在您购买证书时在浏览器中生成密钥和 CSR;在这种情况下,浏览器会提示您将私钥保存到磁盘。

另外:您应该保护您的私钥:确保只有系统管理员/网络服务器才能读取它们。

相关内容