Apache2 - 为什么私钥和证书不匹配?

问题描述 投票:0回答:1

我想为我的运行 apache 的服务器设置 ssl。所以我按照 google 给出的说明进行操作。我为我的域请求了 ssl 证书,并获得了 ssl-mysite.key 文件。 不幸的是,这是我从提供商那里收到的唯一文件

但是您需要 SSLCertificateChainFile 和 SSLCertificateFile 我在里面找到了一个 SSLCertificateFile

/etc/ssl/certs/ca-certificates.crt
尝试将其添加到我的 mysite.conf 文件中

<VirtualHost *:80>
    ServerName www.mysite.com
    ServerAlias mysite.com

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/ca-certificates.crt
    SSLCertificateKeyFile /etc/ssl/sites-pk.key
    ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
...

现在 apache 无法启动服务器并抛出

所以我查找了 mysite-error.log 以获取更多信息,我得到了

[ssl:emerg] [pid 956:tid 1234567890] AH0123: Certificate and private key www.mysite.de:443:0 from /etc/ssl/certs/ca-certificates.crt and /etc/ssl/sites-pk.key do not match

我想可能是因为我在.conf中使用端口80,但如果我更改为443,服务器甚至无法启动。

linux apache ssl server
1个回答
0
投票

您必须以正确的方式使用 SSL 成功运行 apache。

在apache中安装SSL需要3个文件。

  1. 证书文件:certificate.crt
  2. 证书链文件:ca-cerrificate.crt
  3. 私钥:private.key

在购买 SSL 之前,您必须填写网站名称、组织名称、国家代码等表格来生成 CSR 文件。

在生成 CSR 期间,还需要生成私钥文件。

将 CSR 和密钥文件保存在您的系统中。

现在将 CSR 文件发送给您的 SSL 提供商,付款后它将生成并为您提供一个 zip 文件。

下载该zip文件并解压,您将得到以下3个文件

  1. 证书文件
  2. 链证书文件
  3. .pem 文件

现在您必须使用前两个文件以及之前在 mysite-ssl.conf 文件中保存的密钥文件。

保持 mysite.conf 不变,请勿将 SSL 证书放入其中。 另外,您还需要提及两个conf文件中的DocumentRoot路径,您在这里错过了

<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
#DocumentRoot as example
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/mysite-error.log

在 /etc/apache2/sites-available/ 文件夹中创建一个新文件,如 mysite-ssl.conf 并编写如下

<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
#DocumentRoot as example
DocumentRoot /var/www/html

SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificates.crt
SSL CertificateChainFile /etc/ssl/certs/certificates.crt
SSLCertificateKeyFile /etc/ssl/sites-pk.key
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log

然后启用它

cd /etc/apache2/sites-available/
sudo a2ensite mysite-ssl.conf

重启apache服务

sudo systemctl restart apache2

享受快乐的虚拟主机!!!

© www.soinside.com 2019 - 2024. All rights reserved.