configs para vários sites no apache com ssl

1

Eu preciso proteger dois sites diferentes no apache. Um deles deve ser apenas um proxy para um servidor diferente que está sendo executado na porta 8069.

Agora, um (que é incluído nativamente no apache) é executado com SSL:

<VirtualHost *:443>
      ServerName 192.168.1.20
      SSLEngine on
      SSLCertificateFile /etc/ssl/erp/oeserver.crt
      SSLCertificateKeyFile /etc/ssl/erp/oeserver.key
      DocumentRoot /var/www/cloud
      ServerPath /cloud/
      #CustomLog /var/www/logs/ssl-access_log combined
      #ErrorLog /var/www/logs/ssl-error_log
</VirtualHost>

O outro não está em execução e nem está registrado. Quando tento acessá-lo, recebo uma exceção (ssl_error_rx_record_too_long):

<VirtualHost *:443>

ServerName 192.168.1.20
ServerPath /erp/

SSLEngine on
SSLCertificateFile /etc/ssl/erp/oeserver.crt
SSLCertificateKeyFile /etc/ssl/erp/oeserver.key

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyVia On
ProxyPass / http://127.0.0.1:8069/
ProxyPassReverse / http://127.0.0.1:8069
RewriteEngine on
RewriteRule ^/(.*) http://127.0.0.1:8069/$1 [P]


RequestHeader set "X-Forwarded-Proto" "https"

SetEnv proxy-nokeepalive 1
</VirtualHost>

Meu desejo é a seguinte configuração:

192.168.1.20        ->> unsecured local path to website
192.168.1.20/cloud/ ->> secured local documentpath from cloud
192.168.1.20/erp/   ->> secured proxy on port 80 for http://192.168.1.20:8069

como isso é possível? isso é possível? talvez cloud.192.168.1.20 e er.192.168.1.20 é melhor?!

Obrigado ============ EDIT ========================== apache2ctl -S -M:     *: 443 é um NameVirtualHost              servidor padrão myserver (/etc/apache2/conf.d/cloud.conf:1)              porta 443 namevhost myserver (/etc/apache2/conf.d/cloud.conf:1)     *: 80 é um NameVirtualHost              servidor padrão do servidor (/ etc / apache2 / sites-enabled / default: 1)              porta 80 namevhost myserver (/ etc / apache2 / sites-enabled / default: 1)

padrão:

<VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Cloud.conf modificado (atual):

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/openerp/oeserver.crt
    SSLCertificateKeyFile /etc/ssl/openerp/oeserver.key
    DocumentRoot /var/www/
    RewriteCond {REQUEST_URI} ^/cloud$
    RewriteEngine on
    RewriteRule /(.*) http://127.0.0.1:8069/$1 [P]
    RequestHeader set "X-Forwarded-Proto" "https"
    SetEnv proxy-nokeepalive 1
</VirtualHost>
    
por elCapitano 03.11.2013 / 19:50

1 resposta

2

você não pode ter

<VirtualHost *:443>
      ServerName 192.168.1.20
      SSLEngine on

2 vezes porque o apache se ligará apenas a um host virtual.

por que não incluir os dois / locais / em uma configuração?

<VirtualHost *:443>
      ServerName 192.168.1.20
      SSLEngine on
      SSLCertificateFile /etc/ssl/erp/oeserver.crt
      SSLCertificateKeyFile /etc/ssl/erp/oeserver.key
      DocumentRoot /var/www/cloud
      <Directory /var/www/cloud>
          blah
      </Directory>

      # erp-config
      # ... proxy_config ....
      ProxyPass /erp http://127.0.0.1:8069/
      proxyPassReverse /erp http://127.0.0.1:8069/

</VirtualHost>

Editar2

outra forma seria 2 <VirtualHosts> - configs separadas, seja baseada em nome (um IP, SNI deve estar disponível) ou baseada em IP (um IP para cada host, geralmente funciona sempre)

    
por 04.11.2013 / 08:47