我刚从 GoDaddy 获得了 SSL 证书。我下载了文件……但现在我不知道应该把它们放在哪里。我还需要设置什么吗?
我之所以询问是因为我收到了关于如何在 Apache2 服务器上设置 SSL 的相互矛盾的方法。
他们说使用 ssl.conf 但是我在我的服务器上发现了两个:
/etc/apache2/mods-available/ssl.conf
/etc/apache2/mods-enabled/ssl.conf
然后他们说我必须添加这些说明:
SSLCertificateFile /path/to/your/certificate/file
SSLCertificateKeyFile /path/to/your/key/file
SSLCertificateChainFile /path/to/intermediate/bundle/file
他们还说它可能不在 ssl.conf 中,而是在 httpd.conf 文件中......
那么它是哪一个?
如果我使用ssl.conf
哪个文件,我必须修改它吗?
在此先感谢您的帮助。
更新:
这是我的配置:
<VirtualHost 00.00.000.00:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/ssl/certs/example.crt
SSLCertificateKeyFile /etc/ssl/private/example.key
#SSLCertificateChainFile /etc/ssl/certs/gd_bundle.crt
</VirtualHost>
看来 GoDaddy 证书由于某种原因未被 Google Chrome 识别...
那么 SSLCertificateChainFile 是什么?
答案1
这取决于具体情况。您可能希望将这些行添加到 VirtualHost 文件中。我将使用默认值作为示例,但您可能定义了多个 VirtualHost(它们通常位于目录中/etc/apache2/site-available/
)。
但是,您首先需要安装 SSL 证书。通常,您可以将文件.crt
(或证书文件,如果它不以 .crt 结尾)放在/etc/ssl/certs/
目录中。然后将.key
文件复制到/etc/ssl/private/
目录中。确保该.key
文件没有其他可读权限,因为它可能导致漏洞。提醒一下,这些只是默认的 SSL 证书位置,您可以将它们放在任何地方我看到有些安装使用/etc/apache2/ssl
CRT 和 KEY 文件的垃圾场。这同样完全取决于您。
为了在 Apache 中实际设置 SSL 站点,您需要复制站点的 VirtualHost 并编辑几行,以便它能够与 SSL 正常运行。在此示例中,我将继续使用默认设置,但将其替换default
为您正在编辑的 VirtualHost 文件。
因此对于默认站点,您将复制文件/etc/apache2/sites-available/default
,如下所示:
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
然后编辑新default-ssl
文件。首先将第一行 ... 从 更改为<VirtualHost
,因此它可能看起来像::80
:443
<VirtualHost *:443>
可能*
需要是 Apache 监听该站点的 IP 地址。它仍然可以是星号,即通配符匹配,但当您在多个站点上有多个 SSL 证书时,这可能会导致问题。当文件底部的行上方更新后,</VirtualHost>
添加以下内容:
SSLEngine on
SSLCertificateFile /etc/ssl/certs/<yourssl>.crt
SSLCertificateKeyFile /etc/ssl/private/<yourssl>.key
SSLCertificateChainFile /etc/ssl/certs/<yourssl>.crt
完成此操作后,您需要启用您的网站。调用以下命令来启用 mod_ssl、您创建的新 VirtualHost,然后重新启动 Apache。
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart
现在,当您通过 https:// 导航到该网站时,您应该能够成功连接!