使用来自 Cloudflare 的 .pem 和 .key 设置 Ubuntu Apache2 SSL

Set up Ubuntu Apache2 SSL using .pem and .key from Cloudflare

我正在使用 Cloudflare 在 Ubuntu 20 上使用 Apache2 建立安全连接。我使用他们的 Origin Server 向导生成了以下文件:

example.com.pem(原产地证书)

example.com.key 文件(私钥)

我给了他们 Cloudflare 建议的扩展。

我运行这个:

 sudo a2enmod ssl
 sudo systemctl restart apache2

这是我的设置:

<VirtualHost *:443>
    ....
    SSLEngine on
    SSLCertificateFile /path/example.com.pem
    SSLCertificateKeyFile /path/example.com.key

非安全站点工作正常(我还没有将其指向安全站点),但是当我尝试访问安全站点时仍然出现错误 525(SSL 握手失败)。 (我在 运行 sudo a2enmod ssl 命令之前遇到网站关闭错误)

我试了一下是否设置正常:

apachectl configtest

它只是说“Syntax OK”

(编辑:我删除了我尝试过的错误内容——我现在知道这是错误的——以简化问题。)

根据 Max Ivanov 的评论回答,这有效:

生成文件

使用 Cloudflare 的 Origin Server 向导生成以下文件:

example.com.pem(原产地证书)

example.com.key 文件(私钥)

我给了他们 Cloudflare 建议的扩展。

复制到Ubuntu

将文件复制到Ubuntu。一个好地方是 /etc/ssl

添加 .conf 文件的路径

这些文件在 /etc/apache2/sites-available

您可以使用默认文件或为您的站点创建自己的特定文件。我有 example.com.conf 和 example.com-ssl.conf

将复制的两个文件的路径添加到安全版本(example.com-ssl.conf)

<VirtualHost *:443>
   ....
   SSLEngine on
   SSLCertificateFile /path/example.com.pem
   SSLCertificateKeyFile /path/example.com.key

告诉Ubuntu使用它

如果您创建了自己的 conf 文件,则需要将它们添加到可用站点,您可以这样做:

sudo a2ensite example.com.conf
sudo a2ensite example.com-ssl.conf

您可能还需要删除默认设置,具体取决于您的用例。某处有一个命令...

您还需要运行

sudo a2enmod ssl
sudo systemctl restart apache2

将 Cloudflare 设置为严格

在仪表板中,将 ssl 设置为严格。