SSL Wildcard cert - Conflitos de vários hosts virtuais em dois servidores

1

Estou trabalhando com uma equipe pequena e atualmente temos dois servidores, um para versões de lançamento e outro para desenvolvimento. Temos um certificado SSL curinga para podermos cobrir vários subdomínios. Eu configurei as ramificações de release e desenvolvimento nos respectivos servidores, e originalmente tínhamos apenas a configuração SSL no servidor live enquanto as compilações dev eram HTTP padrão. Agora gostaríamos de poder configurar uma compilação SSL no servidor dev para nos fornecer um ambiente de teste mais verdadeiro, mas estamos tendo o problema atual.

Eu tenho a configuração do servidor ao vivo para capturar todos os subdomínios, pois estaremos vendendo nossos serviços para diferentes organizações, e gostaríamos de dar a eles a oportunidade de acrescentar à URL. O problema acontece quando tento configurar um host virtual no servidor dev para uma URL específica. Embora a página de login carregada esteja no servidor dev, o login faz você sair do SSL ou redireciona você para o servidor ativo (provavelmente devido a uma regra de reescrita que tenho no servidor ativo para evitar que você sendo expulso do https). Aqui estão os dois arquivos de configuração que tenho no momento.

Servidor ativo

<VirtualHost *:80>
    ServerName *.fileblimp.com
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
    <IfModule pagespeed_module>
            ModPagespeed Off
    </IfModule>
</VirtualHost>
<VirtualHost *:443>
    ServerName *.fileblimp.com
    ServerAlias *
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/files
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            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
    <IfModule pagespeed_module>
            ModPagespeed Off
    </IfModule>
    <IfModule mod_php5.c>
            php_value include_path        ".:/usr/local/lib/php:/wwwfiles/sta$
    </IfModule>
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/certs/cert.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/fileblimp.com.key
    SSLCertificateChainFile /etc/apache2/ssl/certs/gd_bundle.crt
</VirtualHost>

Servidor de desenvolvimento

<VirtualHost *:443>
    ServerName development.fileblimp.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/dev/www/files
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            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
    <IfModule pagespeed_module>
            ModPagespeed Off
    </IfModule>
    <IfModule mod_php5.c>
            php_value include_path        ".:/usr/local/lib/php:/wwwfiles/sta$
    </IfModule>
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/certs/cert.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/fileblimp.com.key
    SSLCertificateChainFile /etc/apache2/ssl/certs/gd_bundle.crt
</VirtualHost>

Agradeço antecipadamente pela ajuda, eu realmente aprecio isso.

    
por hugmungus 19.03.2014 / 21:08

1 resposta

0

O Safado aponta corretamente que parece haver um erro de configuração no aplicativo no servidor ativo, fazendo com que ele devolva os usuários de HTTPS de volta para HTTP. Eu não ficaria surpreso se houvesse um URL HTTP, como http://www.fileblimp.com , em algum lugar na configuração do aplicativo. Se você consertar isso, provavelmente irá corrigir o seu problema.

Caso contrário, no servidor ativo, o redirecionamento no primeiro host virtual de HTTP de volta para HTTPS parece resolver o problema. Mas esse host virtual não parece estar presente no servidor de desenvolvimento. Isso é deliberado ou você o deixou fora da sua pergunta por engano? É aí que o redirecionamento de HTTP para HTTPS é, então parece que se você o adicionasse ao servidor dev, a solução funcionaria lá também.

BTW no servidor live, você pode simplificar um pouco o primeiro host virtual deixando de fora RewriteCond %{SERVER_PORT} !^443$ . Isso não é necessário, já que o servidor em <VirtualHost *:80> é conhecido por estar escutando na porta 80.

Em desenvolvimento, o host virtual correspondente pode simplificar ainda mais para apenas

<VirtualHost *:80>
    ServerName development.fileblimp.com
    Redirect permanent / https://development.fileblimp.com/
</VirtualHost>
    
por 19.03.2014 / 21:55