Proxy reverso Apache para que as solicitações do navegador SSL para IP do servidor sejam redirecionadas para FQDN

Proxy reverso Apache para que as solicitações do navegador SSL para IP do servidor sejam redirecionadas para FQDN

Eu tenho o Apache e um serviço da web personalizado não Apache em execução no mesmo servidor. Estou tentando fazer com que o Apache faça conexões SSL de proxy reverso para outro site para evitar que avisos SSL apareçam quando alguém acessa meu site digitando o endereço no navegador (https://xx.xx.xx.xx). Eu gostaria que a solicitação fosse alterada automaticamente para uma solicitação FQDN nessas circunstâncias para evitar avisos de certificado.

Meu site está sendo executado em um serviço personalizado (não no Apache) e não tem como impedir isso. Meu plano é configurar o Apache para escutar em 443 e redirecionar para a porta 80 na mesma caixa e usar algum tipo de regra de reescrita para impedir o acesso IP direto ou redirecioná-lo.

Consigo fazer essa parte funcionar bem, mas as solicitações diretas ao IP não são redirecionadas automaticamente para solicitações de nome. A configuração de teste parcialmente funcional na porta 8080 está abaixo.

<VirtualHost *:8080>
ServerName fqdn
SSLEngine On
SSLCertificateFile /etc/httpd/ssl/Cert.crt
SSLCertificateKeyFile /etc/httpd/ssl/Key.key
SSLCertificateChainFile /etc/httpd/ssl/TrustedRoot.crt
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://fqdn:80/
ProxyPassReverse / http://fqdn:80/

ErrorLog logs/myserver-error_log
CustomLog logs/myserver-access_log common
</VirtualHost>

Eu tentei algumas diretivas de reescrita, mas não tive muito sucesso. Além disso, os redirecionamentos de javascript não impedirão os erros de SSL. Ideias?

Responder1

Mude seu serviço para escutar em uma porta que não pode ser acessada externamente, digamos 8888. O Apache deve lidar com todas as solicitações recebidas, enviando um redirecionamento (reescrita) para aquelas que não lhe agradam. Aqueles que satisfazem, por exemplo. o FQDN:

ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/

Adicione um host virtual na porta 443 para as solicitações seguras (https/SSL) e um servidor padrão para aquelas solicitações que chegam ao seu sistema sem usar o FQDN.

informação relacionada