Como configurar o LetsEncrypt SSL para vários sites hospedados no CentOS 7?

1

Eu tenho um servidor do CentOS 7 com o Apache. Atualmente, existem vários sites hospedados no Virtual Server como "Servidor de Nível Superior" e "Sub-Servidor" usando o VirtualMin, ou seja, Vários Servidores Virtuais no Servidor Web Apache.

  • Servidor de nível superior - www.example1.com (wordpress)
  • Sub-servidor - www.example2.com (wordpress)
  • Sub-servidor - www.example3.com (opencart)
  • e assim por diante.

Servidores Virtuais Apache:

  • Servidor padrão - / var / www / html
  • Servidor virtual - example1.com - / home / example1 / public_html
  • Servidor virtual - example2.com - /home/example1/domains/example2.com/public_html
  • Servidor virtual - example3.com - /home/example1/domains/example3.com/public_html

Eu quero instalar o LetsEncrypt SSL em todos os sites. Devo instalar 1 certificado SSL para todos os domínios ou 1 para cada domínio?

Como devo proceder? Qualquer ajuda seria muito apreciada.

    
por Ratul Nandi 15.07.2018 / 13:42

2 respostas

2

Você tem duas opções:

  • para obter vários certificados, por meio de várias chamadas certbot separadas;

  • para obter um único certificado com várias SANs - nomes alternativos de assunto, por meio de uma única invocação certbot (com várias opções -d especificadas).

Se os sites estiverem totalmente desconectados, usarei a opção nº 1. Se eles estão strongmente relacionados, eu usaria a opção 2.

    
por 15.07.2018 / 15:14
0

Eu estou nos sistemas Debian e Ubuntu, e gosto da mentalidade de "configuração separada disponível para sites vs. sites ativados para cada site".

Então ...

Eu tenho um arquivo conf httpd para cada vhost.

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R,L]
</VirtualHost>
<VirtualHost 10.0.2.15:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
                AllowOverride All
                Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>

Não se esqueça de criar seus diretórios para o DocumentRoot .

Em seguida, pare o servidor web apache, verifique se o firewall está aceitando conexões com a porta 443 e invoque o certbot ou letsencrypt . Eu não confio nele para modificar minha configuração do apache, então eu uso a opção certonly . Percorrer um para cada domínio -

letsencrypt certonly -d example.com -d www.example.com

Em seguida, vincule as configurações do apache a sites-enabled ou use a2ensite ou, no entanto, você está gerenciando configurações ativas, teste a configuração do apache com apache2ctl -t e, se todos os relatórios estiverem bem, reinicie o apache.

    
por 15.07.2018 / 20:27