我应该把 Apache 标头放在哪里?

我应该把 Apache 标头放在哪里?

我有一台 18.04 Ubuntu 服务器,上面有一个经 Let's Encrypt 认证的 Drupal 8 站点。

# sudo certbot --apache -d mydomaine.com -d www.mydomaine.com  --rsa-key-size 4096
# sudo nano /etc/apache2/sites-available/www.mydomaine.com-le-ssl.conf

以下是内容:

<IfModule mod_ssl.c>
   <VirtualHost 00.00.00.000:443 [0000:0000:000:0000::000]:443>

      ServerAdmin [email protected]
      ServerName mydomaine.com
      ServerAlias www.mydomaine.com
      DocumentRoot /var/www/www.mydomaine.com/web/

      <Directory /var/www/www.mydomaine.com/web>
         Options FollowSymLinks MultiViews
         AllowOverride All
         Require all granted
      </Directory>

      <FilesMatch \.php$>
         SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
      </FilesMatch>

      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined

      Include /etc/letsencrypt/options-ssl-apache.conf
      SSLCertificateFile /etc/letsencrypt/live/mydomaine.com/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/mydomaine.com/privkey.pem

      Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
      Header always set X-Content-Type-Options "nosniff"
      Header always set X-XSS-Protection "1; mode=block"
      Header always set X-Frame-Options "SAMEORIGIN"
      Header always set X-Download-Options "noopen"
      Header always set X-Permitted-Cross-Domain-Policies "none"
      Header always set Content-Security-Policy "default-src https: data: wss: 'unsafe-inline' 'unsafe-eval'"
      Header set Set-Cookie HttpOnly;Secure

   </VirtualHost>
</IfModule>

我应该移动 options-ssl-apache 中的标头吗?

# sudo nano /etc/letsencrypt/options-ssl-apache.conf

以下是内容:

# This file contains important security parameters. If you modify this file
# manually, Certbot will be unable to automatically provide future security
# updates. Instead, Certbot will print and log an error message with a path to
# the up-to-date file that you will need to refer to when manually updating
# this file.

SSLEngine on

# Intermediate configuration, tweak to your needs
SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder     on
SSLCompression          off

SSLOptions +StrictRequire

# Add vhost name to log entries:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common

#CustomLog /var/log/apache2/access.log vhost_combined
#LogLevel warn
#ErrorLog /var/log/apache2/error.log

# Always ensure Cookies have "Secure" set (JAH 2012/1)
#Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"

答案1

由于使用IncludeOptional/Include指令,所有内容都被视为一个大配置文件 ( apache2.conf),因此只有像 as 这样的标签<VirtualHost>才有意义。如果您将指令放在标签之外,<VirtualHost>它将在服务器级别有效 - 适用于所有虚拟主机。如果您将指令放在此类标签内,它将仅对特定虚拟主机有效。

相关内容