
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 PTR
registros. Nem todos os endereços IP têm. Se puder, use endereços IP na Require
declaraçã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 proxy
se tudo o que deseja é proxypass
funcionalidade.
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