как правильно вернуть публичный адрес сервера в экземпляре EC2 с PHP

Я новичок в AWS ... Я установил один экземпляр EC2, на котором работают Nginx и PHP 7.1.6. а прокси-сервер <--> backend (= vsphere) должен быть защищен TLS. Сертификаты есть и все в порядке. DNS настроен соответствующим образом.

Клиенты уже могут получить доступ к стартовой странице vsphere через прокси-сервер, например https: // vsphere.domain.tld /

Анализ сети Firefox показывает, что все запросы в порядке и приняты, например

    302 GET /vsphere-client/ [FQDN] document html

до /vsphere-client/UI.swf

Но как только пользователь щелкает ссылку «vSphere Web Client (Flash)» для аутентификации и входа в меню, выдается код состояния 400. Ссылка «vSphere Web Client (Flash)» направляет на / vsphere-client / и, очевидно, вызывает запрос SAML.

    400 GET https://vsphere.domain.tld/websso/SAML2/SSO/vsphere.local?SAMLRequest=zVRba9sw[...] [FQDN] subdocument

Журнал vsphere sso показывает:

    tomcat-http--38 ERROR org.opensaml.common.binding.decoding.BaseSAMLMessageDecoder] SAML message intended destination endpoint 'https://vsphere-internal.domain.tld/websso/SAML2/SSO/vsphere.local' did not match the recipient endpoint 'https://vsphere.domain.tld/websso/SAML2/SSO/vsphere.local'

Конфигурация виртуального хоста на обратном прокси-сервере Apache на данный момент (выдержка):

    SSLProxyEngine on
    ProxyPreserveHost on
    ProxyRequests off
    ProxyPass        / https://vsphere.domain.tld/
    ProxyPassReverse / https://vsphere.domain.tld/

    ProxyPass        /vsphere-client https://vsphere.domain.tld/vsphere-client/
    ProxyPassReverse /vsphere-client https://vsphere.domain.tld/vsphere-client/
    ProxyPass        /websso/SAML2/SSO https://vsphere.domain.tld/websso/SAML2/SSO/
    ProxyPassReverse /websso/SAML2/SSO https://vsphere.domain.tld/websso/SAML2/SSO/

    # new, to solve the name binding problem (see 1st answer)
    RequestHeader set Host "vsphere-internal.domain.tld"

С последним дополнением «RequestHeader», которое фактически просто меняет значение параметра PreserveHost, я теперь могу видеть страницу входа в vsphere и войти в систему, но затем страница снова зависает:

    tomcat-http--10 ERROR com.vmware.identity.BaseSsoController] Could not parse tenant request java.lang.IllegalStateException: org.opensaml.xml.security.SecurityException: SAML message intended destination endpoint did not match recipient endpoint

Есть предложения, как получить полную страницу?

0
задан 4 July 2017 в 18:24
1 ответ

Я решил решить первую проблему, то есть «предполагаемая конечная точка назначения ... не соответствует конечной точке получателя», добавив имя хоста серверной части (= веб-клиент vsphere) в конфигурацию vhost Apache:

    RequestHeader set Host "<backend hostname>"

(здесь: vsphere-internal.domain.tld), но, как правильно объяснил ezra-s, здесь просто изменилась опция PreserveHost. Поэтому я удалил параметры RequestHeader и PreserveHost. По-прежнему страдает вторая проблема ...

0
ответ дан 5 December 2019 в 07:51

Теги

Похожие вопросы