我有这些域名
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
否则*:80
apache 将没有虚拟主机srv.domain.com