英镑配置,通配符的 https 重定向问题
Pound Configuration, https redirect issues with wildcard
我遇到了 wildcard.domain.com 未 100% 正常工作的问题。转到 https://wildcard.domain.com, where as 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 presents user with https://www.test.domain.com/
作品:用户前往 http://www.test.domain.com, Pound presents user with https://www.test.domain.com/
作品:用户前往 https://www.test.domain.com, Pound presents user with https://www.test.domain.com/
失败:用户转到https://test.domain.com/,庞德向用户呈现"Your connection is not Private"
我不明白如何解决这个问题,是否只需要向 HTTPS 侦听器添加一个正则表达式?
如果您的证书仅指示 *.test.domain.com 对 test.domain.com 无效,则仅适用于子域(且仅适用于一级)。
那一行有一个错误:
HeadRequire "^Host:.test.domain.com\s$"
它重定向任何东西。test.domain.com 但也重定向任何东西test.domain.com(注意遗漏的一点)。我觉得应该是
HeadRequire "^Host:..test.domain.com\s$"
如果您只想重定向一级子域:
HeadRequire "^Host:[^.]+.test.domain.com\s*$"
如果您也想重定向 test.domain.com:
HeadRequire "^Host:([^.]+.)?test.domain.com\s*$"
我遇到了 wildcard.domain.com 未 100% 正常工作的问题。转到 https://wildcard.domain.com, where as 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 presents user with https://www.test.domain.com/
作品:用户前往 http://www.test.domain.com, Pound presents user with https://www.test.domain.com/
作品:用户前往 https://www.test.domain.com, Pound presents user with https://www.test.domain.com/
失败:用户转到https://test.domain.com/,庞德向用户呈现"Your connection is not Private"
我不明白如何解决这个问题,是否只需要向 HTTPS 侦听器添加一个正则表达式?
如果您的证书仅指示 *.test.domain.com 对 test.domain.com 无效,则仅适用于子域(且仅适用于一级)。
那一行有一个错误:
HeadRequire "^Host:.test.domain.com\s$"
它重定向任何东西。test.domain.com 但也重定向任何东西test.domain.com(注意遗漏的一点)。我觉得应该是
HeadRequire "^Host:..test.domain.com\s$"
如果您只想重定向一级子域:
HeadRequire "^Host:[^.]+.test.domain.com\s*$"
如果您也想重定向 test.domain.com:
HeadRequire "^Host:([^.]+.)?test.domain.com\s*$"