default-ssl.conf 和 000-default-le-ssl.conf 有什么区别?

default-ssl.conf 和 000-default-le-ssl.conf 有什么区别?

default-ssl.conf 非常容易理解。我假设它是在没有 vhost 或其他配置覆盖它时使用的默认值。

但是 000-default-le-ssl.conf 文件到底是什么?为什么它要这样命名?前面的三个零是什么意思?它与 default-ssl.conf 有何不同/使用方式有何不同?应该如何使用其中一个/两者?

无论使用哪个 conf 文件,我都发现可以使用的默认值非常少。对于多个域,我实际上无法使用 ServerName/ServerAlias,而且由于每个域都有自己的目录/端口,因此我也无法使用默认的 DocumentRoot/Proxy。就我而言,我为每个域都生成了 SSL 证书,因此也无法在那里使用默认值。甚至每个域的 ServerAdmin 也可能不同。基于此用例,我应该将其几乎留空还是我遗漏了什么?在这种情况下,最佳做法是什么?

我在 Ubuntu 18.04 上运行最新的 Apache 服务器。

答案1

文件名前面的 0 只是强制在扫描目录时按顺序进行,并逐一处理结果。

使用 apache 时,如果客户端连接并请求您的服务器未配置为提供的主机名,则第一个读取/处理的虚拟主机就是客户端被发送到的虚拟主机。

default-le配置听起来像是 LetsEncrypt 可能用于身份验证/确认的配置,但这只是基于le文件名中出现的猜测。要确定,您应该检查内容,如果有问题请发帖。

至于默认值等,您可以共享几乎所有的配置信息,或者至少是文件路径的父目录等。

这是我使用的模板,根据需要替换 DOMAIN 和 YOURIP。

<VirtualHost *:80>
  ServerName DOMAIN
  ServerAlias www.DOMAIN
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.DOMAIN/$1 [R,L]
</VirtualHost>
<VirtualHost YOURIP:443>
    ServerName DOMAIN
    ServerAlias www.DOMAIN
    ServerAdmin webmaster@DOMAIN
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-DOMAIN
    <directory /var/www-DOMAIN>
        Options All
                AllowOverride All
                Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-DOMAIN-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-DOMAIN-access.log combined
</VirtualHost>

答案2

快速回答:你看到这里发生了两件事——

TLDR1:“为什么是 000-sitename.conf?”而不是“sitename.conf?” 前者通常只是第一个的符号链接,您可以通过ls -alh检查l文件权限的修饰符来判断。

TLDR2:“为什么选择 sitename.conf 而不是 sitename-le-ssl.conf?” 前者处理 HTTP 验证(文件中指示的端口名为80),后者处理 HTTPS 验证(文件中指示的端口名为443)。

答案3

但是 000-default-le-ssl.conf 文件到底是什么?为什么它要这样命名?前面的三个零是什么意思?

正如其他人提到的,在前面添加数字是强制执行特定顺序(例如配置文件)的常用方法。这使得该文件很早就被加载。

它与 default-ssl.conf 有何不同/使用方式有何不同?应如何使​​用其中之一/两者?

  • default-ssl.conf这是 Apache 为配置了 SSL 的服务器提供的模板。它对最常用的选项有很多解释。您可以将其用作您自己的配置的基础。
  • 000-default-le-ssl.conf这是由 Let's Encryptcertbot命令自动生成的。它有一些特定的设置,例如,证书文件的路径已经正确设置。如果您希望使用生成的 Let's Encrypt 证书,请将其用作配置的基础。

当然,你可以随意混合使用两个文件中的选项,但请确保你理解这些选项的含义。你可以找到Apache SSL 选项的在线文档

对于多个域,我实际上不能使用 ServerName/ServerAlias

只需添加多个VirtualHost部分:

<VirtualHost *:443>
  ServerName firstdomain.example.com

  # more options for your 1st domain
</VirtualHost>

<VirtualHost *:443>
  ServerName seconfdomain.example.com

  # more options for your 2nd domain
</VirtualHost>

相关内容