Como fazer hospedagem virtual em massa com o que vamos criptografar?

2

Tenho 2500 domínios públicos (como www.example.com, example.com, www.example.net e example.net) em execução em um único endereço IP usando o Apache VirtualHost.

Eu quero configurar o letsencrypt para todos esses domínios. Qual é a maneira recomendada de fazer isso? Existem ferramentas automatizadas que podem fazer isso?

A solução deve ser:

  • provado que funciona (não adivinhação)
  • completo
  • trabalhe em um único IP

A parte ativa da minha seção <VirtualHost> tem esta aparência:

<VirtualHost *:80>
  # www.sub.example.com -> sub.example.com/html/                                                  
  RewriteCond ${lowercase:%{SERVER_NAME}} ^(www\.)?(.*)
  RewriteRule ^/(.*)$ /home/hotels/%2/html/$1
</VirtualHost>
    
por Ole Tange 12.02.2018 / 20:22

2 respostas

1

A primeira coisa é que você precisa de Apache v2.2.12 ou mais tarde e OpenSSL v0.9.8j ou mais tarde para suportar vários certificados SSL em um único endereço IP com SNI. Verifique seu servidor e verifique a versão do servidor web Apache antes de continuar. Se a sua máquina não suportar essas versões ou versões posteriores, você precisará atualizar.

Digicert tem um bom artigo em Usando vários certificados SSL no Apache com um endereço IP

Como observado, você precisará criar um host virtual separado para cada domínio. Cada host virtual terá sua própria configuração de certificado SSL. Permite Criptografar permitirá que você crie um certificado SSL para cada domínio usando curingas ou especificação de vários servidores através de certbot

A Digital Ocean tem um artigo sobre Como configurar Vamos Criptografar Certificados , que também inclui a instalação do certbot no Ubuntu. Se o seu servidor não for o Ubuntu, obtenha as instruções de instalação do certbot . Além disso, você pode precisar de Vamos criptografar a documentação

Você cria um certificado SSL para cada domínio através do certbot usando instruções como:

certbot --apache -d example.com -d www.example.com
certbot --apache -d example.net -d www.example.net

Observe que cada comando é para um domínio diferente, mas você pode ter vários nomes de host por domínio.

Na sua configuração do Apache, você cria um host virtual para cada domínio

NameVirtualHost *:443

<VirtualHost *:443>
 ServerName www.example.com
 ServerAlias example.com
 DocumentRoot /var/www/site
 SSLEngine on
 SSLCertificateFile /path/to/www_example_com.crt
 SSLCertificateKeyFile /path/to/www_example_com.key
 SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>

<VirtualHost *:443>
 ServerName www.example.net
 ServerAlias example.net
 DocumentRoot /var/www/site2
 SSLEngine on
 SSLCertificateFile /path/to/www_example_net.crt
 SSLCertificateKeyFile /path/to/www_example_net.key
 SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>

Dependendo do tipo de certificado recebido e da versão do Apache, talvez seja necessário especificar o endereço IP real <VirtualHost 192.168.1.3:443> em vez de <VirtualHost *:443>

Deixe o host virtual da porta 80, <VirtualHost *:80> , intact para suportar tráfego de entrada não-SSL. Você tem algum trabalho criando até 2500 hosts virtuais para suportar o SSL. Teste com um ou dois antes de mergulhar.

Não se esqueça de ativar o módulo SSL do Apache com

a2enmod ssl
    
por 17.02.2018 / 03:35
0

Para evitar a manutenção de 2500% de<VirtualHost> s individuais, consulte o link

Coloque os certificados em /home/hotels/*/certs/ :

./hitch --backend=localhost:80 \
--frontend=[*]:443 \
/home/hotels/*/certs/*.pem

(não testado).

    
por 18.02.2018 / 21:21