Apache2 – 默认 SSL/HTTPS 页面 – 又名。

Apache2 – 默认 SSL/HTTPS 页面 – 又名。

这是一个非常简单的问题。

我托管了几个网站。有些是 HTTP,有些是 HTTP 和 HTTPS。它们都正常工作。
但是,如果我将一个域名指向尚未设置 SSL 配置的服务器,从而搞乱了一个 SSL 网站,它将重定向到另一个网站,而不是显示错误。在最坏的情况下,一个域名可能会重定向到竞争对手的网站。这可不妙。

为了更好地说明这个问题,假设我有两个公司站点。

  • A公司
  • B公司

假设我有A公司完全设置。我迁移B公司的内容 - 但我还没有设置 SSL 配置。所以我只是移过 HTTP 配置文件。当我重新加载 Apache 时,它​​将开始提供 HTTP 请求 - 但对于 SSL,它将“失败”,请求最终到达第一个配置了 SSL 的网站(按字母顺序排序)。

我想要的和条目一样<VirtualHost *:80>
一个默认的后备<VirtualHost *:443>条目。

我尝试将其放入000-default.conf

<VirtualHost *:443>
        SSLEngine On
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

但这只会导致错误,并且几乎所有托管网站都会崩溃。我该怎么做?我甚至不介意默认在 443 上抛出错误,因为我甚至不想弄乱主机本身的证书。但我该怎么做呢?

答案1

这有效:

<VirtualHost *:443>
        SSLEngine On
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • 将其添加到默认/最顶层配置文件。
  • 确保已安装“snakeoil”证书。在 Ubuntu/Debian 上,这是软件包ssl-cert。我已经安装了它 - 您可能也已经安装了它。
  • 请记住在添加指令后重新加载 Apache2。始终测试其他站点。

如果 SSL 站点配置错误或无法加载,这将加载默认的 Ubuntu / Debian / 任何欢迎页面。仍然比回到实际真实但完全不相关的网站要好。(:

相关内容