Eu tenho o Apache Tomcat executando com SSL ativado. Eu tenho o Apache HTTP Server agindo como um proxy reverso, portanto, se os usuários clicarem em http: // myserver / tomcat /, eles serão passados para http: // myserver: 8080 .
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
Eu tenho o servidor HTTP Apache configurado para SSL também; assim, quando os usuários clicam em https: // myserver / tomcat /, eles devem ser passados para https: // myserver: 8443 / .
Com a configuração atual do ProxyPass & ProxyPassReverse, eles serão redirecionados para o URL não-ssl. Como posso configurar o passe de proxy para que ele seja redirecionado para um protocolo e uma porta diferentes com base na solicitação recebida?
Ou seja, se alguém entrar via HTTPS, como redirecioná-lo para o meu tomcat @ https: // myserver: 8443 ?
Atualizar:
@ mike-insch
Eu tentei:
NameVirtualHost *:443
<VirtualHost *:80>
ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>
<VirtualHost *:443>
ProxyPass /tomcat/ https://myserver:8443/
ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>
Agora, quando visito: https: // myserver / tomcat / recebo "página não encontrada". No log de erros, vejo "O arquivo não existe: / var / apache2 / htdocs / tomcat"
O que está correto, mas esperava que a solicitação fosse roteada para o tomcat em https: // myserver: 8443 / .
Acho que preciso olhar mais para os hosts virtuais, a menos que algo pareça terrivelmente errado.
fonte
NameVirtualHost
diretiva aqui. Além disso, você precisará adicionar as diretrizes apropriadas para ativar o SSL dentro da sua<VirtualHost *:443>
seção.Respostas:
Você precisa fazer isso por meio de duas
<VirtualHost *:X>
diretivas independentes . SuasHTTP
diretivas vão para dentro<VirtualHost *:80>
enquanto suasHTTPS
diretivas vão para dentro<VirtualHost *:443>
. Ajuste conforme necessário, se o servidor tiver vários hosts virtuais baseados em endereço ou baseados em nome configurados. Consulte a documentação do Apache 2 para obter detalhes completos.fonte
Para ser completo: se for uma opção, é uma boa ideia encerrar o SSL no Apache, em vez de o Tomcat também lidar com isso. Desde que o Tomcat seja acessível apenas no Apache, isso é mais simples e não menos seguro.
Nesta configuração, o Apache procuraria proxy HTTP e HTTPS para
http://myserver:8080/
:fonte