我刚刚从 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 上找到一些很好的解释,但看来我并不是唯一一个理解这一点的人。而且似乎目前还没有一个很好的答案。
- https://unix.stackexchange.com/questions/36786/how-to-configure-ssl-in-apache
- https://webmasters.stackexchange.com/questions/58650/what-steps-are-required-to-enable-ssl-on-apache2-with-ubuntu
- https://stackoverflow.com/questions/37939806/ssl-on-apache-http-server
- Apache2 Vhost HTTP 到 HTTPS 重定向无法以奇怪的方式工作