Конфигурация фунта, проблемы перенаправления https с подстановочным знаком

У меня проблема, когда 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/

FAILS: пользователь заходит на https://test.domain.com/, Pound представляет пользователю "Ваше соединение не является частным"

Я не понимаю, как я могу решить эту проблему, мне просто нужно добавить регулярное выражение для слушателя HTTPS?

1 ответ

Решение

Если в вашем сертификате указано, что только *.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 "^ Хост:[^.]+. Test.domain.com\s*$"

Если вы тоже хотите перенаправить test.domain.com:

HeadRequire "^ Хост:([^.]+.)? Test.domain.com\s*$"

Другие вопросы по тегам