apache2 proxy reverso 2 hosts virtuais & ssl

1

Eu tenho 2 servidores: app1.example.biz & app2.example.biz Eu preciso fazer o seguinte usando o apache2 como um proxy reverso redirecionar todo o tráfego proveniente da Internet para o servidor apropriado & use ssl. A configuração que fiz permite redirecionar app1.example.biz para https app1.example.biz & Eu posso acessar o servidor. O problema é que eu não posso fazer o mesmo para app2.example.biz, quando eu digito app2.example.biz ele me redireciona para https app1.example.biz! PS: Eu não posso postar mais do que dois hiperlinks porque sou um novo usuário, mas minha configuração está correta.

<VirtualHost *:80>
   ServerName app1.example.biz/
    Redirect / https app1.example.biz/

</VirtualHost>

<VirtualHost *:443>

ServerName app1.example.biz
ServerAlias app1.example.biz

ProxyPass / http app1.example.biz/
ProxyPassReverse / http app1.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

#<VirtualHost *>
#    ServerName app2.example.biz/
#    Redirect / https  app2.example.biz/
#</VirtualHost>

<VirtualHost *>
ProxyPreserveHost On
ServerName  app2.example.biz
ServerAlias  app2.example.biz

ProxyPass / http app2.example.biz/
ProxyPassReverse / http app2.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

Eu tentei: 1 / usando NameVirtualHost: 80 & NameVirtualHost: 443 2 / Nomeando cada host virtual como este 3 / adicionando

 <VirtualHost *>
ServerName www.example.biz
DocumentRoot /usr/local/apache/htdocs
#SSLEngine on
#SSLCertificateFile    /etc/ssl/servwiki.crt
#SLCertificateKeyFile /etc/ssl/servwiki.key
#SSLVerifyClient none
</VirtualHost>

isso resolve o problema de redirecionar http app1.example.biz & http app2.example.biz para o servidor correspondente mas não funciona com ssl!

ajuda plzzzzz

    
por user124650 14.06.2012 / 11:29

1 resposta

3

Presumivelmente, você está perdendo :443 em sua segunda configuração de host virtual (não tenho certeza se isso é apenas um erro de copiar / colar aqui).

O próximo problema que você enfrentará é que precisará gerenciar vários hosts em SSL / TLS. Para isso, você precisará do servidor para apresentar um certificado válido para esse nome de host durante o handshake SSL / TLS, antes de qualquer solicitação / resposta HTTP ser enviada. Isso pode ser feito usando uma das seguintes técnicas:

  • Use um único endereço IP e um único certificado válido para todos os hosts que você deseja veicular ao mesmo tempo. Isso pode ser obtido com um certificado com várias entradas de nome alternativo de assunto ( app1.example.biz e app2.example.biz ), algumas vezes chamado de UCC, ou um certificado curinga (por exemplo, *.example.biz , mas seu uso é desencorajado).
  • Use endereços IP distintos para cada host, se puder. Nesse caso, não confie em NameVirtualHost para HTTPS, mas defina os endereços IP em cada entrada de host virtual e configure cada seção de host virtual com seu certificado.
  • Use um único endereço IP e vários certificados, mas seu cliente precisará suportar a extensão Indicação do nome do servidor. (Isso não é suportado por nenhuma versão do IE no Windows XP, alguns clientes móveis e Java 6, por exemplo). Como configurá-lo no Apache Httpd está documentado em esta página .
por 14.06.2012 / 11:51