Apache não consegue obter o nome do host remoto

Apache não consegue obter o nome do host remoto

Eu tenho...

<VirtualHost example.com:80>
    ServerAdmin webmaster@localhost
    ServerName example.com

    Redirect permanent / https://example.com/
</VirtualHost>

que vai imediatamente para...

<IfModule mod_ssl.c>
    <VirtualHost example.com:443>

        ServerAdmin webmaster@localhost
        ServerName example.com
        ServerAlias example.com

        DocumentRoot /home/klyde/ror/exampledev/public

        SSLCertificateFile   /etc/apache2/ssl/certs/123abc.crt
        SSLCertificateChainFile /etc/apache2/ssl/certs/gd_bundle-g2-g1.crt
        SSLCertificateKeyFile /etc/apache2/ssl/private/examplekey.key

        BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        SSLEngine on
        SSLProxyEngine On
        ProxyRequests On

        <Proxy *>
            AddDefaultCharset off
            #Options Indexes FollowSymLinks
            AllowOverride none
            <RequireAny>
                #<RequireAll>
                #   Require all granted
                #</RequireAll>
                <RequireAll>
                    Require host example.com
                </RequireAll>
                <RequireAll>
                    Require local
                    # Require ip 127.0.0.1
                </RequireAll>
            </RequireAny>
        </Proxy>

        ProxyPassReverseCookiePath / /
        ProxyPass /errors/ !

        ProxyPass /websockets ws://127.0.0.1:8675/
        ProxyPassReverse /websockets ws://127.0.0.1:8675/

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/

    </VirtualHost>
</IfModule>

Quando eu habilito...

Require all granted

tudo funciona bem. Mas o site está invadido por phishing. Gostaria...

Require host example.com

Mas isso resulta em um erro de log ...

access check of 'example.com' to / failed, reason: unable to get the remote host name

Escolhi essa configuração porque quero parar o SSL no Apache e o ajp no Torquebox. Isso funciona bem, exceto ao tentar proteger o site. É claro que o Apache com Torquebox pode não ser totalmente desejável, aconselhável, etc. Sugestões em contrário são bem-vindas.

Pergunta principal - Por que o erro 'nome do host remoto'. Alguma ideia?

Responder1

Determinar o host remoto pelo nome só funciona se o endereço IP remoto tiver PTRregistros. Nem todos os endereços IP têm. Se puder, use endereços IP na Requiredeclaração.

Você também pode usar autenticação básica (de preferência em https) para restringir o acesso.

Você não deve precisar definir proxyse tudo o que deseja é proxypassfuncionalidade.

Se você precisar de proxy, tente restringir seu proxy ao seu domínio.

<Proxy http://www.example.com/*>
    ....
</Proxy>

Responder2

Eu acho que você pode usar

Require ip 127.0.0.1

com IP do seu servidor em vez do ip local

Responder3

Se você deseja apenas abrir as coisas e permitir solicitações provenientes de qualquer IP, você pode usar:

Require all granted

Você pode procurar aqui para mais informações:https://serverfault.com/a/887196/468080

informação relacionada