私はこれらのドメイン名を持っています
domain.com
www.domain.com
srv.domain.com
同じサーバーIPを指していますが、私のウェブサイトはdomain.comを介してのみアクセスできるようにしたいと思います。www.ドメイン.comSSL証明書があります。 srv.domain.comを介してアクセスされるTCPベースのサービスを実行していますが、SSL証明書はありませんが、現在そのサブドメインを介してサイトにアクセスできます。
この特定のサブドメインに対するHTTPS(およびHTTP)要求をブロックするようにApacheをどのように設定する必要がありますか?
私の設定は次のとおりです。
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