Certificado SSL incorreto (primeiro / padrão) veiculado Apache 2.4 - servidor web do Ubuntu 18.04 muliple domain

1

Plano de fundo : Nós migramos 2 servidores antigos para 2 novos e mais robustos servidores - Ubuntu 17.04 e 18.04. Nós compramos certificados SSL Thawte para os domínios que hospedamos (cerca de 20) para usar em dois servidores. Cada servidor tem seu próprio endereço IP estático.

Os certificados foram configurados na forma de Nome comum www.example.org e Nomes alternativos www.example.org , exemplo.org , www2.example.org

O servidor 17.04 possui os subdomínios "www2". Os certificados SSL foram configurados e tudo funciona bem, entregando https e sem incompatibilidades de certificados

Eu configurei o servidor 18.04 que contém o nosso "www" e tentei espelhar a configuração. Depois de alguns tentativa e erro (esquecendo-se de cabeçalhos a2enmod, erro de vhost de sintaxe no arquivo .conf) eu tenho o primeiro domínio para entregar https

No entanto, quando eu configurei o vconf de domínio do próximo .conf, os navegadores habilitados para SNI deram um erro que o site estava usando o certificado do primeiro domínio. Eu pesquisei e experimentei, verifiquei minha sintaxe e meus caminhos - estou preso.

Curiosamente, quando uso ferramentas de verificação SSL, eles informam que o segundo domínio é aprovado e parece estar reportando a propriedade de domínio correta do certificado. Mas todos os navegadores, dentro e fora da rede, relatam o erro. Se eu ignorar o erro e prosseguir, ele me levará ao primeiro domínio.

Cada domínio tem seu próprio arquivo .conf em / etc / apache2 / sites-available. Eu li onde alguém aconselhou colocar todos os virtualhosts em 1 .conf - eu tentei isso e mesmo resultado, mas o segundo domínio não passou no teste SSL dessa vez.

Parece que meu segundo domínio está retornando o certificado do primeiro domínio e, pelo que li, é esperado que ele faça isso para todos os outros. Esses sites são ao vivo e eu não posso (não deveria) trazê-los para baixo durante o teste. Estou usando nosso site menos visitado para o segundo exemplo de domínio. Alguém sugeriu que isso pode ser um problema de cache e o problema se resolveu muitas horas depois. Não posso deixar de pensar que perdi algumas configurações de servidor que envolvem o SNI, mas o Apache 2.4 supostamente entrega o SNI fora da caixa

do ports.conf

    Listen 80

    <IfModule ssl_module>
            Listen 443
    </IfModule>

    <IfModule mod_gnutls.c>
            Listen 443
    </IfModule>

do exemplo.conf

    <VirtualHost *:80>
            ServerName www.example.org
            ServerAlias example.org www4.example.org
            ServerAdmin [email protected]

            Redirect 301 "/" "https://www.example.org/"
    </VirtualHost>

    <IfModule ssl_module>

        SetEnvIf HTTPS https HTTPS=on
        Header always set Strict-Transport-Security "max-age=63072000" env=HTTPS
        Header always set Content-Security-Policy: upgrade-insecure-requests env=HTTPS
        Header always set X-XSS-Protection: "1; mode=block"
        Header always set X-Frame-Options: sameorigin
        Header always set X-Content-Type-Options: nosniff
        Header always set X-Permitted-Cross-Domain-Policies: "master-only"

    <VirtualHost *:443>
            ServerName www.example.org
            DocumentRoot /var/www/example/

            ServerAdmin [email protected]
            SSLEngine on
            SSLCertificateFile "/etc/apache2/ssl/crt/www.example.org.crt"
            SSLCertificateChainFile "/etc/apache2/ssl/crt/IntermediateCA.example.crt"
            SSLCertificateKeyFile "/etc/apache2/ssl/www.example.org.key"

            DirectoryIndex index.html index.htm index.php

            <FilesMatch "^wp-login\.php$|^wp-admin/.*">
                    AuthName "Login Login"
                    AuthType Basic
                    AuthUserFile /etc/apache2/.htpasswd
                    Require valid-user
            </FilesMatch>

    </VirtualHost>

    </IfModule>

de otherdomain.conf

    <VirtualHost *:80>
            ServerName www.otherdomain.org
            ServerAlias otherdomain.org www4.otherdomain.org
            ServerAdmin [email protected]

           Redirect 301 "/" "https://www.otherdomain.org/"

     </VirtualHost>

     <IfModule ssl_module>

         SetEnvIf HTTPS https HTTPS=on
         Header always set Strict-Transport-Security "max-age=63072000" env=HTTPS
         Header always set Content-Security-Policy: upgrade-insecure-requests env=HTTPS
         Header always set X-XSS-Protection: "1; mode=block"
         Header always set X-Frame-Options: sameorigin
         Header always set X-Content-Type-Options: nosniff
         Header always set X-Permitted-Cross-Domain-Policies: "master-only"

      <VirtualHost *:443>
             ServerName www.otherdomain.org
             DocumentRoot /var/www/otherdomain/

           ServerAdmin [email protected]
           SSLEngine on
           SSLCertificateFile "/etc/apache2/ssl/crt/www.otherdomain.org.crt"
           SSLCertificateChainFile "/etc/apache2/ssl/crt/IntermediateCA.otherdomain.crt"
           SSLCertificateKeyFile "/etc/apache2/ssl/www.otherdomain.org.key"

            DirectoryIndex index.html index.htm index.php

            <FilesMatch "^wp-login\.php$|^wp-admin/.*">
                    AuthName "Login Login"
                    AuthType Basic
                    AuthUserFile /etc/apache2/.htpasswd
                    Require valid-user
            </FilesMatch>

    </VirtualHost>

    </IfModule>

De possível importância, os sites e servidores "www" são sites WordPress. O subdomínio "www4" que usei para fins de teste enquanto trazia os referidos sites WordPress de um ambiente PHP 5.2 para 7. Uma vez que os sites estivessem sendo exibidos corretamente, apontei DNS (Cloudflare free) para www do endereço IP estático do servidor antigo para o endereço IP estático do novo servidor (Ubuntu18.04).

Coisas que eu tentei:
adicionando um curinga * ao ports.conf
sudo service apache2 reiniciar
sudo service apache2 stop / start
comentando o redirecionamento que tenho na porta 80 Virtualhost
verificando os caminhos do certificado
esperando 6+ horas

Já estou nisso há quase uma semana, esgotando todas as minhas combinações de busca, admitindo a derrota e pedindo ajuda. Agradecemos antecipadamente.

    
por Wes 05.10.2018 / 18:11

1 resposta

0

Acabei descobrindo isso há algum tempo, mexendo na ordem das coisas. O que finalmente funcionou para todos os arquivos .conf para todos os nossos sites:

    <VirtualHost *:80>
            ServerName www.otherdomain.org
            ServerAlias www4.otherdomain.org otherdomain.org
            ServerAdmin [email protected]
            DocumentRoot /var/www/otherdomain/
            Redirect 301 "/" "https://www.otherdomain.org/"
    </VirtualHost>



   <IfModule ssl_module>
       SetEnvIf HTTPS https HTTPS=on
       Header always set Strict-Transport-Security "max-age=63072000" env=HTTPS
       Header always set Content-Security-Policy: upgrade-insecure-requests env=HTTPS
       Header always set X-XSS-Protection: "1; mode=block"
       Header always set X-Frame-Options: sameorigin
       Header always set X-Content-Type-Options: nosniff
       Header always set X-Permitted-Cross-Domain-Policies: "master-only"

    <VirtualHost *:443>
            ServerName www.otherdomain.org
            ServerAlias otherdomain.org
            DocumentRoot /var/www/otherdomain/

            ServerAdmin [email protected]
            SSLEngine on
            SSLCertificateFile "/etc/apache2/ssl/crt/www.otherdomain.org.crt"
            SSLCertificateChainFile "/etc/apache2/ssl/crt/IntermediateCA.otherdomain.crt"
            SSLCertificateKeyFile "/etc/apache2/ssl/www.otherdomain.org.key"

            DirectoryIndex index.html index.htm index.php


    <FilesMatch "^wp-login\.php$|^wp-admin/.*">
            AuthName "Login Login"
            AuthType Basic
            AuthUserFile /etc/apache2/.htpasswd
            Require valid-user
    </FilesMatch>

    </VirtualHost>

    </IfModule>

O que especificamente foi o culpado em meus arquivos vhosts subsequentes para usar os certificados do primeiro, eu não sei.

    
por 21.11.2018 / 15:37