jnb*_*bdz 5 configuration ssl apache2
我刚刚从 Godaddy 获得了 SSL 证书。我下载了文件......但现在我在徘徊应该把它们放在哪里。还有什么我需要设置的吗?
我之所以这么问是因为我收到了如何在 Apache2 服务器上设置 SSL 的冲突方式。
他们说使用 ssl.conf 但我在我的服务器上发现了两个:
/etc/apache2/mods-available/ssl.conf
/etc/apache2/mods-enabled/ssl.conf
Run Code Online (Sandbox Code Playgroud)
然后他们说我必须添加这些说明:
SSLCertificateFile /path/to/your/certificate/file
SSLCertificateKeyFile /path/to/your/key/file
SSLCertificateChainFile /path/to/intermediate/bundle/file
Run Code Online (Sandbox Code Playgroud)
他们还说它可能不在 ssl.conf 中,而是在 httpd.conf 文件中...
那么到底是什么?
如果我使用ssl.confwich 文件,我必须修改吗?
在此先感谢您的帮助。
更新:
这是我的配置:
<VirtualHost 00.00.000.00:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
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>
Run Code Online (Sandbox Code Playgroud)
似乎Godaddy证书。由于某种原因未被 Google Chrome 重新识别...
那么什么是 SSLCertificateChainFile?
这取决于。您可能希望将这些行添加到 VirtualHost 文件中。我将使用默认值作为示例,但您可能会定义多个 VirtualHosts(它们通常在/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
Run Code Online (Sandbox Code Playgroud)
然后编辑新default-ssl文件。首先改变第一行,<VirtualHost...,从:80到:443所以它可能看起来像:
<VirtualHost *:443>
Run Code Online (Sandbox Code Playgroud)
将*很可能需要对其中的Apache用于侦听该网站的IP地址。它仍然可以是一个星号,这是一个通配符匹配,但是当您在多个站点上拥有多个 SSL 证书时,这可能会导致问题。当它在文件底部更新时,就在该</VirtualHost>行的上方,添加以下内容:
SSLEngine on
SSLCertificateFile /etc/ssl/certs/<yourssl>.crt
SSLCertificateKeyFile /etc/ssl/private/<yourssl>.key
SSLCertificateChainFile /etc/ssl/certs/<yourssl>.crt
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您需要启用您的网站。调用以下命令启用 mod_ssl,您创建的新 VirtualHost,并重新启动 Apache。
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)
现在,当您通过 https:// 导航到该站点时,您应该能够成功连接!
| 归档时间: |
|
| 查看次数: |
30272 次 |
| 最近记录: |