如何让 apache 使用 SSL

如何让 apache 使用 SSL

我刚刚从 CA 购买了一些 SSL 证书,但在让它们与 apache2(Debian 10)部署的默认 SSL 站点一起工作时遇到了问题。

奇怪的是,我从未提出过证书请求。我只需要证明我是该网站的所有者,然后证书就会以 *.zip 文件的形式下载,其中包含以下文件(以及每个文件的第一行):

ca_bundle.crt                -----BEGIN CERTIFICATE-----
certificate.crt              -----BEGIN CERTIFICATE-----
private.key                  -----BEGIN RSA PRIVATE KEY-----

我将它们部署到/etc/ssl/...//etc/apache2/ssl.crt/并在配置文件中引用它们。我的/etc/apache2/sites-enabled/default-ssl.conf看起来像这样(我删除了大部分注释):

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin [email protected]
                ServerName example.com
                ServerAlias www.example.com
                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on
                SSLCertificateFile    /etc/ssl/certs/certificate.crt
                SSLCertificateKeyFile /etc/ssl/private/private.key
                #SSLCertificateChainFile /etc/apache2/ssl.crt/ca_bundle.crt
                SSLCACertificatePath /etc/ssl/certs/
                SSLCACertificateFile /etc/apache2/ssl.crt/ca_bundle.crt

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>

运行后systemctl restart apache2,加载https://网站版本会出现熟悉的“警告:前方有潜在安全风险”,就像它是一个自签名证书一样。

我想我不明白哪些选项起什么作用。

由于这是一个非常基础的问题,我以为我会在 stack-exchange 上找到一些很好的解释,但看来我并不是唯一一个理解这一点的人。而且似乎目前还没有一个很好的答案。

相关内容