
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 PTR
Datensatz hat. Dies ist nicht bei allen IP-Adressen der Fall. Wenn möglich, verwenden Sie in der Require
Anweisung IP-Adressen.
Sie können auch eine Basisauthentifizierung (vorzugsweise über https) verwenden, um den Zugriff einzuschränken.
Sie müssen kein a definieren, proxy
wenn 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