Eu pesquisei em torno de SF e entendi de outro posts que com o TSL um pode ter vários certificados SSL / TSL para diferentes subdomínios em uma única instância do Apache. Eu estou querendo saber se / como eu posso hospedar o domínio principal com um certificado e subdomínios desse mesmo domínio principal com um certificado wildcard separado.
Estou trabalhando em um site que opera principalmente em inglês. Quando as pessoas visitam o www.example.com , temos uma regra mod_rewrite que as redireciona para example.com . Ele também redireciona solicitações HTTP antigas simples para HTTPS. Temos o servidor configurado com um certificado de validação estendida (EV) muito bom que transforma a barra de endereços do navegador em verde - parece bastante seguro e confiável.
O problema é que queremos exibir outros idiomas em outros subdomínios. Por exemplo:
- espanhol em es.example.com
- alemão em de.example.com
- italiano em it.example.com
Nosso certificado de validação estendida não é válido para esses subdomínios, então compramos um certificado curinga e gostaríamos de configurar o apache para que ele use o certificado EV para solicitações HTTPS para example.com e o certificado curinga para solicitações HTTPS para todos os subdomínios de idioma.
Eu entendo este documento de suporte digicert e um serverfault post que o Apache 2.4. 18 devem suportar o uso de vários certificados SSL para domínios diferentes se as conexões HTTPS forem feitas usando TSL , mas não se forem feitas usando SSL. O documento digicert sugere a criação de uma seção VirtualHost inteiramente separada, uma para cada certificado, mas me pergunto se há outras sutilezas que estão faltando. Nosso conf apache atual, por exemplo, não possui uma diretiva ServerName e não tenho certeza se precisaria criar uma diretiva ServerAlias para cada idioma suportado ou se poderíamos usar um caractere curinga nessas configurações do Apache? Além disso, os subdomínios (en.example.com) são uma supercadeia do domínio primário (example.com) - estou preocupado que isso possa causar confusão ao encaminhar solicitações?
Atualmente, nosso único conf SSL do apache em /etc/apache2/sites-available/default-ssl.conf se parece com isso quando você tira todos os comentários:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/html/
SetEnv CI_ENV testing
<Directory /var/www/html>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ev-ssl-certificate.crt
SSLCertificateKeyFile /etc/ssl/private/ev-private.key
SSLCACertificateFile /etc/ssl/certs/ev-IntermediateCA.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Alguém pode me dizer qual seria a abordagem de melhores práticas nesta situação? Idealmente, vamos replicar o menor código possível para que isso funcione. Eu também aprecio muito quaisquer avisos ou pegadinhas. Por exemplo, suspeito que precisarei desativar os protocolos SSL para que apenas o TSL seja usado.