Apache-2.2

Apache httpd.conf 僅對子域使用 SSL 並為其他 https URL 提供 404

  • May 17, 2012

我的網站郵件客戶端有一個目前配置:

   NameVirtualHost *:443

   <VirtualHost *:443>
           SSLEngine on
           SSLCertificateFile /etc/pki/tls/certs/ca.crt
           SSLCertificateKeyFile /etc/pki/tls/private/ca.key
           <Directory /var/www/mailclient>
                   AllowOverride All
           </Directory>
           DocumentRoot /var/www/mailclient
           ServerName mail.*
           ServerAlias mail.*
   </VirtualHost>

當我嘗試訪問 https://mail.domain1.comhttps://mail.domain2.com 時,它工作正常。

但是當我嘗試訪問 https://domain1.comhttps://sub.domain1.com 時,我仍然會看到 Web 郵件客戶端,但除了 404 或類似的東西我不想看到任何東西。那麼我如何才能將此虛擬主機限制為僅用於特定的子域?

配置一個預設的虛擬主機,它將返回一個錯誤。它需要高於您目前的虛擬主機才能成為預設值,但低於NameVirtualHost配置。

NameVirtualHost *:443

<VirtualHost *:443>
   ServerName default.filler.name
   SSLEngine on
   SSLCertificateFile /etc/pki/tls/certs/ca.crt
   SSLCertificateKeyFile /etc/pki/tls/private/ca.key
   <Location />
       Order Allow,Deny
       Deny from all
   </Location>
</VirtualHost>

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /etc/pki/tls/certs/ca.crt
   SSLCertificateKeyFile /etc/pki/tls/private/ca.key
   <Directory /var/www/mailclient>
       AllowOverride All
   </Directory>
   DocumentRoot /var/www/mailclient
   ServerName mail.*
   ServerAlias mail.*
</VirtualHost>

它將是 403 而不是 404。足夠接近嗎?

引用自:https://serverfault.com/questions/390144