Apache kann den Remote-Hostnamen nicht abrufen

Apache kann den Remote-Hostnamen nicht abrufen

Ich habe...

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

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

was sofort zu ... geht.

<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>

Wenn ich aktiviere...

Require all granted

alles funktioniert ok. Aber die Seite wird von Phishing überschwemmt. Ich möchte...

Require host example.com

Dies führt jedoch zu einem Protokollfehler ...

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

Ich habe diese Konfiguration gewählt, weil ich SSL in Apache stoppen und AJP zu Torquebox übertragen möchte. Das funktioniert gut, außer beim Versuch, die Site zu sichern. Natürlich ist Apache mit Torquebox möglicherweise nicht unbedingt wünschenswert, ratsam usw. Vorschläge, die dagegen sprechen, sind willkommen.

Hauptfrage: Warum der Fehler „Remote-Hostname“. Irgendwelche Ideen?

Antwort1

Die Ermittlung des Remote-Hosts anhand des Namens funktioniert nur, wenn die Remote-IP-Adresse einen PTRDatensatz hat. Dies ist nicht bei allen IP-Adressen der Fall. Wenn möglich, verwenden Sie in der RequireAnweisung IP-Adressen.

Sie können auch eine Basisauthentifizierung (vorzugsweise über https) verwenden, um den Zugriff einzuschränken.

Sie müssen kein a definieren, proxywenn Sie nur Funktionalität wünschen proxypass.

Wenn Sie einen Proxy benötigen, versuchen Sie, Ihren Proxy auf Ihre Domäne zu beschränken.

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

Antwort2

Ich denke, Sie können

Require ip 127.0.0.1

mit der IP von Ihrem Server anstelle der lokalen IP

Antwort3

Wenn Sie die Dinge einfach nur öffnen und Anfragen von jeder IP-Adresse zulassen möchten, können Sie Folgendes verwenden:

Require all granted

Weitere Informationen finden Sie hier:https://serverfault.com/a/887196/468080

verwandte Informationen