0

我有一个问题,wildcard.domain.com 不能 100% 工作。转到https://wildcard.domain.com时似乎失败了,因为https://www.wildcard.domain.com有效。所以我有以下英镑配置:

##
# 1 http://*.test.domain.com
##
ListenHTTP
        Address         10.xx.xx.xx
        Port            80
        HeadRemove      "X-HTTPS-via-LB"
        RewriteLocation 0
    xHTTP           0
    Service "test domain"
      HeadRequire   "^Host:.*test\.domain\.com\s*$"
      Redirect      "https://www.test.domain.com"
    End
End

##
# 2 https://*.test.domain.com
##
ListenHTTPS
        Address                 10.xx.xx.xx
        RewriteLocation 0
        HeadRemove              "X-HTTPS-via-LB"
        AddHeader               "X-HTTPS-via-LB: 1"
        Port                    443
        xHTTP                   0
        Cert                    "/etc/pki/tls/private/wildcard.test.domain.com.combined"
        Ciphers                 "****"
End

现在这几乎可以工作,但在某些情况下仍然失败:

作品:用户访问http://test.domain.com,Pound 向用户展示https://www.test.domain.com/

作品:用户访问http://www.test.domain.com,Pound 向用户展示https://www.test.domain.com/

作品:用户访问https://www.test.domain.com,Pound 向用户展示https://www.test.domain.com/

失败:用户访问https://test.domain.com/,Pound向用户显示“您的连接不是私有的”

我不明白如何解决这个问题,我只需要向 HTTPS 侦听器添加一个正则表达式吗?

4

1 回答 1

1

如果您的证书仅表明 *.test.domain.com 对 test.domain.com 无效,则仅适用于子域(并且仅适用于一级)。

该行有一个错误:

HeadRequire "^Host: .test.domain.com\s $"

它重定向anything.test.domain.com,但也重定向anythingtest.domain.com(注意缺失点)。我认为应该是

HeadRequire "^Host: .test.domain.com\s $"

如果您只想重定向一级子域:

HeadRequire "^Host:[^.]+.test.domain.com\s*$"

如果你也想重定向 test.domain.com:

HeadRequire "^Host:([^.]+.)?test.domain.com\s*$"

于 2016-08-23T14:26:14.387 回答