Letsencrypt no CentOS 6 com vários VirtualHosts

1

Estou tentando configurar o Letsencrypt em um servidor CentOS que tenha vários hosts virtuais. Parece funcionar bem no Ubuntu, e percebo que o script que faz o trabalho só funciona para domínios únicos no CentOS, mas imaginei que poderia fazer alguns ajustes manualmente. Infelizmente, só consigo obter o virtualhost em primeiro lugar para executar em https, o que parece mais um problema do Apache do que um problema do Letsencrypt, pois se eu inverter a ordem, a que estiver no topo funciona onde antes eu teria um erro.

Aqui está o aspecto do ssl.conf para o virtualhost:

NameVirtualHost *:443
Listen 443
<VirtualHost *:443>
        DocumentRoot "/var/www/html/domain1.com/laravel/public"
        ServerName domain1.com:443
        ServerAlias www.domain1.com:443
        ErrorLog logs/domain1_ssl_error_log
        TransferLog logs/domain1_ssl_access_log
        LogLevel warn

        Header set Access-Control-Allow-Origin "*"


        SSLEngine on

        SSLProtocol all -SSLv2
        SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
        SSLCertificateFile /etc/letsencrypt/live/domain1.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/domain1.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/domain1.com/chain.pem

        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </Files>

        <Directory "/var/www/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>

        SetEnvIf User-Agent ".*MSIE.*" \
                 nokeepalive ssl-unclean-shutdown \
                 downgrade-1.0 force-response-1.0

        CustomLog logs/ssl_request_log \
                  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

<VirtualHost *:443>
        DocumentRoot "/var/www/html/domain2.com/laravel/public"
        ServerName domain2.com:443
        ServerAlias www.domain2.com:443
        ErrorLog logs/domain1_ssl_error_log
        TransferLog logs/domain1_ssl_access_log
        LogLevel warn

        Header set Access-Control-Allow-Origin "*"


        SSLEngine on

        SSLProtocol all -SSLv2
        SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
        SSLCertificateFile /etc/letsencrypt/live/domain2.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/domain2.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/domain2.com/chain.pem

        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </Files>

        <Directory "/var/www/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>

        SetEnvIf User-Agent ".*MSIE.*" \
                 nokeepalive ssl-unclean-shutdown \
                 downgrade-1.0 force-response-1.0

        CustomLog logs/ssl_request_log \
                  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
    
por Alan 06.04.2016 / 21:35

1 resposta

0

Eu tenho usado o Let's Encrypt por um tempo agora, e escrevi alguns how-tos para colocá-lo em funcionamento (no CentOS 6 e no CentOS 7, especificamente - mas não há nenhuma razão para que eles também não funcionem em outras plataformas).

Eu não adiciono o: 443 no meu% por co-domínio% configs. O que eu fiz documentado em outra pergunta recentemente - agora divido minhas configurações em vários arquivos (um para cada domínio em vez de ter arquivos VirtualHost & vhosts.conf massivos).

Eu não tenho nenhuma referência SSL na minha base httpd.conf - certifique-se de que você não configurou algo acidentalmente lá.

Como escrevi nessa outra resposta, minhas configurações por domínio são assim:

<VirtualHost *:80>
ServerName domain.tld
Redirect permanent / https://domain.tld/
</VirtualHost>

<VirtualHost *:443>
    SSLCertificateFile /etc/letsencrypt/live/domain.tld/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/domain.tld/fullchain.pem
    DocumentRoot /var/www/domain
    ServerName domain.tld
    ErrorLog logs/domain-error_log
    CustomLog logs/domain-access_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    ServerAdmin [email protected]

    SSLEngine on

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

    <Directory "/var/www/domain">
         Options All +Indexes +FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
    </Directory>

</VirtualHost>

e meu ssl.conf :

#SSL options for all sites
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
Mutex sysvsem default
SSLRandomSeed startup file:/dev/urandom  1024
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLCompression          off
SSLHonorCipherOrder     on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
    
por 11.04.2016 / 19:59