设置 Apache 阻止对某个子域的 HTTPS 请求

设置 Apache 阻止对某个子域的 HTTPS 请求

我有这些域名

domain.com
www.domain.com
srv.domain.com

指向相同的服务器IP,但希望我的网站只能通过domain.com 访问,并且www.domain.com具有 SSL 证书。我运行通过 srv.domain.com 访问的基于 TCP 的服务;它没有 SSL 证书,但目前我仍然可以通过该子域访问该网站。

我应该如何配置 Apache,以便它阻止对此特定子域的 HTTPS(和 HTTP)请求?

我的配置如下所示:

000-default.conf:

<VirtualHost *:80>
  ServerName domain.com
  ServerAlias www.domain.com
  DocumentRoot /var/www/html
  AllowEncodedSlashes NoDecode

  RewriteEngine on
  RewriteCond %{SERVER_NAME} =domain.com [OR]
  RewriteCond %{SERVER_NAME} =www.domain.com
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

000-default-le-ssl.conf:

<VirtualHost *:443>
  ServerName domain.com
  ServerAlias www.domain.com
  DocumentRoot /var/www/html
  AllowEncodedSlashes NoDecode

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

  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</VirtualHost>

答案1

专门为每个所需的域创建一个虚拟主机,*:443否则*:80apache 将没有虚拟主机srv.domain.com

相关内容