Nosso servidor foi atualizado ontem então agora ele tem um Ubuntu mais atualizado, Apache 2.4.10, PHP etc. Depois que eu coloquei tudo de volta, o Apache começou a reclamar sobre minha configuração.
O servidor hospeda um site que está usando curingas para conteúdo dinâmico para diferentes clientes e contém três certificados curinga para diferentes serviços para esses clientes.
Uma parte da configuração com um curinga se parece com isso:
<VirtualHost *:80>
ServerName *.dashboard.example.com
ServerAlias *.dashboard.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.dashboard.example\.com$
RewriteRule ^/(.*)$ https://%1.dashboard.example.com/$1 [R=302,L]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName *.dashboard.example.com
ServerAlias *.dashboard.example.com
DocumentRoot /var/www/dashboard.example.com/web
<Directory />
AllowOverride All
Options -Indexes +MultiViews +FollowSymLinks
Order Deny,Allow
Allow from all
</Directory>
ErrorLog /var/log/apache2/dashboard.example.com-error.log
CustomLog /var/log/apache2/dashboard.example.com-access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/bundle_wc_dashboard_example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
</VirtualHost>
Observe que estou usando um pacote como um arquivo de certificado. Usar arquivos separados para os arquivos intermediários e raiz resulta em um resultado ainda pior ao usar verificações de SSL. O certificado GeoTrust não é reconhecido. Meu fornecedor de certificado SSL explicou a partir do Apache 2.4, os certificados devem ser pacotes.
Então, isso não funciona para mim:
SSLCertificateFile /etc/ssl/certs/wildcard_dashboard_example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
SSLCertificateChainFile /etc/ssl/certs/GeoTrust_Global_CA.crt
SSLCertificateChainFile /etc/ssl/certs/RapidSSL_SHA256_CA_G3.crt
O acima, no entanto, funcionou no Apache 2.2.
Quando tento iniciar o apache, ele reclama do valor ServerName
:
[FAIL] Reloading web server: apache2 failed!
[warn] The apache2 configtest failed. Not doing anything. ... (warning).
Output of config test was:
AH00526: Syntax error on line 42 of /etc/apache2/sites-enabled/3-production.conf:
Invalid ServerName "*.dashboard.example.com" use ServerAlias to set multiple server names.
Action 'configtest' failed.
The Apache error log may have more information.
Então parece que o asterisco não é permitido. Se eu remover o asterisco, o apache será iniciado, mas um erro será exibido no log de erros do domínio:
Fri Mar 11 10:32:13.821304 2016] [ssl:warn] [pid 18019] AH01909: dashboard.example.com:443:0 server certificate does NOT include an ID which matches the server name
De outras fontes, encontrei o seguinte comando, que deve ser usado para determinar o CommonName que deve ser usado como ServerName:
openssl x509 -in wildcard_dashboard_example_com.crt -noout -subject
Que retorna:
subject= /CN=*.dashboard.example.com
Meu navegador mostra um bloqueio verde, mas as verificações de SSL reclamam que estou perdendo um arquivo de certificado intermediário / de cadeia (veja a captura de tela). O mesmo problema ocorre no mesmo servidor para outros dois domínios curinga e um subdomínio normal que não é um curinga. Até mesmo o apache reivindica server certificate does NOT include an ID which matches the server name
.
O site está usando curingas para conteúdo dinâmico para diferentes clientes e contém três certificados curinga para diferentes serviços para esses clientes.
Alguma ideia de como posso consertar isso? Qualquer outra coisa que eu possa fazer para verificar o que está errado?
Atualização de 18 de maio de 2016
Eu consertei isso no início de abril. Parece que a empresa que forneceu os certificados SSL nos deu um certificado raiz antigo. Eles me enviaram um zip contendo um certificado em conjunto e arquivos de certificado separados. Eu tentei instalar essas várias vezes. Então, comparei o conteúdo de todos os arquivos manualmente com outros sites que funcionaram. Percebi a diferença e baixei novamente os certificados manualmente do site deles.
O certificado GeoTrust foi diferente. Depois de instalar tudo funcionou como um encanto. Meu chefe me disse que ele iria contatá-los sobre isso, mas infelizmente isso nunca aconteceu. Feliz está trabalhando agora mesmo.