Escolha o certificado SSL com base no nome de domínio sem VHosts separados

2

Estou trabalhando com uma rede de vários sites do WordPress que possui vários nomes de domínio de nível superior. No momento, estamos servindo todos eles com um host virtual:

<VirtualHost *:80>
        ServerName example.com
        ServerAlias *
        DocumentRoot /var/www/html/example.com/public
</VirtualHost>

Com Vamos Criptografar no final deste ano, gostaríamos de oferecer HTTPS gratuito para nossos clientes. Usando este serviço, poderíamos obter automaticamente um certificado para cada domínio. Eu gostaria de poder configurar o Apache para procurar em uma pasta específica pelos certificados, para que nosso script automatizado não precise alterar a configuração do Apache ao adicionar um novo certificado.

<VirtualHost *:443>
    DocumentRoot /var/www/html/example.com/public
    ServerName example.com
    ServerAlias *

    SSLEngine on

    # This line should find the cert that corresponds to the requested domain
    SSLCertificateFile /etc/pki/tls/certs/*.crt

    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
</VirtualHost>

O Apache pode ser configurado para escolher o certificado correto para o domínio solicitado sem precisar de hosts virtuais separados ou alterações de configuração para cada um ?

Estamos abertos para alternar versões do Apache ou instalar um módulo do Apache conhecido, se necessário.

    
por Joshua Dwire 06.06.2015 / 17:32

1 resposta

1

Eu não posso garantir a segurança de tal sistema, pois dependerá de uma combinação da segurança do seu servidor com o script automatizado, além de uma configuração segura do Apache, mas não está além da possibilidade de que um poderia ser implantado.

Você precisa configurar hosts virtuais separados com o Server Name Indication (SNI). Você deve ter um host virtual padrão configurado como um pega-tudo e definir o suporte ao Protocolo (atualmente, apenas os protocolos definidos no host virtual padrão são usados para o site inteiro). Outros hosts virtuais podem ser configurados em arquivos de configuração separados, com chaves privadas e certificados separados, talvez em uma base por diretório. Se você estiver em um servidor Unix, poderá usar um único diretório contendo links para os arquivos de configuração para ajudar o Apache a encontrá-los. Você precisará prestar atenção especial às permissões de arquivos e à estrutura de diretórios.

    
por 16.06.2015 / 15:19