Apache在选择为SSL配置的VirtualHost(端口443)时完全忽略ServerName指令

Apache completely ignores ServerName directive when choosing VirtualHost configured for SSL (port 443)

提问人:Programming Caveman 提问时间:10/10/2023 最后编辑:Programming Caveman 更新时间:10/10/2023 访问量:35

问:

我已经为此工作了一整天,我什至问了 ChatGPT,但我找不到该死的解决方案。为什么 Apache 在选择为 SSL(端口 443)配置的 VirtualHost 时完全忽略了 ServerName 指令。 当我去 htps://siteB.com 时,它会加载siteA的SSL证书,但看起来很糟糕。它应该使用最后一个 VirtualHost 和 siteB.com 重定向。我尝试了数十种不同的组合,但都被卡住了。它看起来像一个该死的错误。还是我错了?请帮忙。

# ----- test.siteA.com -----
<VirtualHost *:80>
    ServerName test.siteA.com

    DocumentRoot "c:/htdocs"
    <Directory "c:/htdocs">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# ----- test.siteA.com -----
<VirtualHost *:443>
    ServerName test.siteA.com

    DocumentRoot "c:/htdocs"
    <Directory "c:/htdocs">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile "c:/Apache24/Certs/siteA.com.crt.pem"
    SSLCertificateKeyFile "c:/Apache24/Certs/siteA.com.key.pem"
    SSLCertificateChainFile "c:/Apache24/Certs/siteA.com.ca.pem"
</VirtualHost>

# ----- siteB.com -----
<VirtualHost *:80>
    ServerName siteB.com

    DocumentRoot "C:\htdocs2"
    <Directory "C:\htdocs2">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# ----- siteB.com -----
<VirtualHost *:443>

    ServerName siteB.com
    
    Redirect permanent / http://siteB.com
    
</VirtualHost>
Apache SSL 多域

评论


答: 暂无答案