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.