Como configuro o SSL CRT no meu servidor Apache2?

5

Acabei de receber do Godaddy um certificado SSL. Eu baixei os arquivos ... Mas agora estou vagando onde devo colocá-los. E há mais alguma coisa que eu preciso configurar?

A razão pela qual estou perguntando porque estou recebendo formas conflitantes de como configurar o SSL em um servidor Apache2.

Eles dizem usar o ssl.conf, mas eu encontrei dois no meu servidor:

/etc/apache2/mods-available/ssl.conf
/etc/apache2/mods-enabled/ssl.conf

Então eles dizem que eu tenho que adicionar estas instruções:

SSLCertificateFile /path/to/your/certificate/file
SSLCertificateKeyFile /path/to/your/key/file
SSLCertificateChainFile /path/to/intermediate/bundle/file

Também dizem que pode não estar no arquivo ssl.conf, mas no arquivo httpd.conf ...

Então, qual é?

E se eu usar ssl.conf , qual arquivo devo modificar?

Agradecemos antecipadamente por qualquer ajuda.

ATUALIZAÇÃO:

Aqui está minha configuração:

<VirtualHost 00.00.000.00:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com
    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #   A self-signed (snakeoil) certificate can be created by installing
    #   the ssl-cert package. See
    #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
    #   If both key and certificate are stored in the same file, only the
    #   SSLCertificateFile directive is needed.
    SSLCertificateFile    /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
    #SSLCertificateChainFile /etc/ssl/certs/gd_bundle.crt
</VirtualHost>

Parece que o certificado de Godaddy. não é reconhecido pelo Google Chrome por algum motivo ...

Então, o que é o SSLCertificateChainFile?

    
por jnbdz 18.10.2011 / 23:29

1 resposta

6

Isso depende. Você provavelmente desejará adicionar essas linhas ao arquivo VirtualHost. Usarei o padrão como o exemplo, mas você provavelmente terá vários VirtualHosts definidos (eles normalmente estão no diretório /etc/apache2/site-available/ ).

No entanto, primeiro você precisa instalar os certificados SSL. Normalmente, você pode colocar o arquivo .crt (ou o arquivo de certificado, se não terminar com .crt) no diretório /etc/ssl/certs/ . Em seguida, copie o arquivo .key para o diretório /etc/ssl/private/ . Certifique-se de que o arquivo .key não tenha outras permissões legíveis, pois isso pode levar a uma exploração. Como um lembrete, estes são apenas locais de certificado SSL padrão, você pode colocá-los em qualquer lugar que você quiser. Algumas instalações usam /etc/apache2/ssl para uma área de despejo de arquivos CRT e KEY. Isso, mais uma vez, depende inteiramente de você.

Para realmente configurar o site SSL no Apache, você vai querer copiar o VirtualHost do site e editar algumas linhas para que ele funcione corretamente com o SSL. Neste exemplo, continuarei usando apenas a configuração padrão, mas substitua default pelo arquivo VirtualHost que você está editando.

Assim, para o site padrão, você copiará o arquivo /etc/apache2/sites-available/default , assim:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl

Em seguida, edite o novo arquivo default-ssl . Primeiro, altere a primeira linha, <VirtualHost ..., de :80 para :443 , de modo que provavelmente pareça:

<VirtualHost *:443>

O * provavelmente precisará ser o endereço IP para o qual o Apache atende a esse site. Ele ainda pode ser um asterisco, que é uma correspondência de caractere curinga, mas isso pode causar problemas quando você tem vários certificados SSL em vários sites. Quando isso é atualizado na parte inferior do arquivo, logo acima da linha </VirtualHost> , adicione o seguinte:

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/<yourssl>.crt
    SSLCertificateKeyFile /etc/ssl/private/<yourssl>.key
    SSLCertificateChainFile /etc/ssl/certs/<yourssl>.crt

Depois de fazer isso, você precisará ativar seu site. Invoque os seguintes comandos para ativar o mod_ssl, o novo VirtualHost que você criou e reinicie o Apache.

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

Agora, quando você navegar para o site por meio de https: //, será possível conectar-se com sucesso!

    
por Marco Ceppi 19.10.2011 / 00:13