estou carregando os arquivos SSL para meus subdomínios curinga do Virtualhost, mas o segundo host virtual carrega o arquivo SSL do primeiro virtualhost e o navegador relata erro de certificado inválido
Aqui está a configuração
<VirtualHost *:443>
ServerName cert-1.domain.com
ServerAlias cert-1.domain.com,*.net.domain.com
DocumentRoot /home/myuser/public_html
ServerAdmin [email protected]
UseCanonicalName Off
<IfModule mod_suphp.c>
suPHP_UserGroup myuser myuser
</IfModule>
<IfModule suexec_module>
<IfModule !mod_ruid2.c>
SuexecUserGroup myuser myuser
</IfModule>
</IfModule>
<IfModule ssl_module>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cert-1.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cert-1.domain.com/privkey.pem
</IfModule>
</VirtualHost>
<VirtualHost *:443>
ServerName cert-2.domain.com
ServerAlias cert-2.domain.com,*.org.domain.com
DocumentRoot /home/myuser/public_html
ServerAdmin [email protected]
UseCanonicalName Off
<IfModule mod_suphp.c>
suPHP_UserGroup myuser myuser
</IfModule>
<IfModule suexec_module>
<IfModule !mod_ruid2.c>
SuexecUserGroup myuser myuser
</IfModule>
</IfModule>
<IfModule ssl_module>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cert-2.domain.com-2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cert-2.domain.com-2/privkey.pem
</IfModule>
</VirtualHost>
Mas quando visito qualquer coisa.org.domain.com, ele carrega o arquivo SSL do primeiro host virtual em vez do segundo host virtual,
Mesmo quando tentei um subdomínio que não está no primeiro ou no segundo host virtual, ele ainda carrega o primeiro arquivo SSL do host virtual e o navegador gera um erro SSL inválido.
Como posso resolver isto,
Obrigado
Responder1
Os aliases de servidor devem ser separados por espaço, não por vírgula, então sua ServerAlias
linha deve ficar assim:
ServerAlias cert-1.domain.com *.net.domain.com
Observe que mais ServerAlias
diretivas podem ser fornecidas em um único bloco, o que torna a configuração um pouco mais legível no caso de muitos aliases.
Se você solicitar um host para o qual não existe nenhuma configuração explícita, o Apache servirá o primeiro bloco que encontrar (é por isso que é uma boa ideia incluir um VirtualHost
bloco com ServerAlias *
no último lugar, para ter um site "pega-tudo").
Portanto, no seu caso, nenhuma das ServerAlias
linhas funciona (pelo menos não como você espera), pois você está definindo um alias para um servidor que teria o "cert-2.domain.com,*.org.domain.com" nome, com vírgula, asterisco e tudo. Para isso, quando você solicita "anything.org.domain.com", o Apache serve o primeiro bloco que encontra, pois esse nome de host não está definido na configuração.