多级通配符和 SSL

多级通配符和 SSL

我正在尝试让它工作:

dev.somedomain.tld *.dev.somedomain.tld *.somedomain.tld

我创建了两个 SSL 证书,一个包含 dev.somedomain.tld 和 *.somedomain.tld,另一个包含 *.dev.somedomain.tld。

我还创建了两个 VHost:

<VirtualHost 192.168.5.47:443>
  ServerName dev.somedomain.tld
  ServerAlias *.somedomain.tld 
</VirtualHost>

<VirtualHost 192.168.5.47:443>
  ServerName something.dev.somedomain.tld
  ServerAlias *.dev.somedomain.tld 
</VirtualHost>

问题是:无论 Apache 中的优先级如何,anything.dev.somedomain.tld 都会转到 dev.somedomain.tld vhost。

对于更高级别的通配符,有什么特别的事情要做吗?

答案1

根据 Apache 文档,VirtualHosts 顺序很重要。您可以通过运行来检查 VirtualHosts 顺序httpd -S

请参阅我的具有不同 VirtualHosts 顺序的示例:

[root@~]# httpd -S
VirtualHost configuration:
192.168.5.47:443       is a NameVirtualHost
     default server dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
     port 443 namevhost dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
             wild alias *.somedomain.tld
     port 443 namevhost something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:358)
             wild alias *.dev.somedomain.tld

[root@~]# httpd -S
VirtualHost configuration:
192.168.5.47:443       is a NameVirtualHost
     default server something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
     port 443 namevhost something.dev.somedomain.tld (/etc/httpd/conf/httpd.conf:353)
             wild alias *.dev.somedomain.tld
     port 443 namevhost dev.somedomain.tld (/etc/httpd/conf/httpd.conf:358)
             wild alias *.somedomain.tld

答案2

好的,所以 something.dev.somedomain.tld 位于名为“5-something.dev.somedomain.tld.conf”的文件中,而“dev.somedomain.tld”位于“20-dev.somedomain.tld.conf”中。我原本以为 something.dev.somedomain.tld 会在之前加载,但事实并非如此,它加载的时间晚了。我不得不将优先级设置为“05”而不是“5”,问题就解决了。

相关内容