Instalar Certificado SSL gratuito no Apache CentOS 7

Instalar Certificado SSL gratuito no Apache CentOS 7

Quero te mostrar como instalar, configurar e também manter atualizado um certificado SSL grátis da certificadora Let’s Encrypt em um Centos 7 rodando Apache como seu servidor web.

Eu acredito que você já deve saber a função dos Certificados SSL, caso não saiba, recomendo que leia esse artigo [O que é Certificado SSL: O guia definitivo], aqui você pode tirar todas suas dúvidas sobre o que é, como funciona e quais os certificados mais adequados para o seu tipo de negócio.

A Let’s Encrypt é uma autoridade certificadora (CA) mantida por grandes corporações como Cisco, Facebook, Akamai entre outras. Ela oferece Certificados SSL gratuitos de instalação e validação automática, atualmente a maioria dos browsers já suportam e identificam os certificados como válidos.

Ou seja, agora acabaram as desculpas para deixar certificados auto-assinados ou expirados em suas aplicações, utilize certificados válidos e mostre que você se preocupa com as informações trafegadas nas suas aplicações.

Abaixo vou deixar um tutorial completo de como instalar Certificado SSL gratuito, o Apache e uma instalação limpa do CentOS 7.

E-BOOK

Guia Prático Certificado SSL

Reunimos nesse material o melhor conteúdo sobre Certificado SSL da web

Instalar Certificado SSL gratuito no Apache (CentOS)

Instalando dependências para a instalação do cliente da Lets Encrypt

yum install epel-release -y
rpm -Uvh https://rhel7.iuscommunity.org/ius-release.rpm
yum --enablerepo=ius install git python27 python27-devel python27-pip python27-setuptools python27-virtualenv -y
cd /root/
git clone https://github.com/letsencrypt/letsencrypt

Instalando o Apache

yum install httpd httpd-tools mod_ssl -y

Neste momento estou criando um arquivo virtual host para hospedar a aplicação, no caso abaixo fiz uma demonstração:

vim /etc/httpd/conf.d/rafael.conf

Com o seguinte conteúdo

<VirtualHost *:80>
DocumentRoot "/var/www/rafael"
ServerName demo.rafaelandrade.org
</VirtualHost>

Lembre de alterar o arquivo do conf do Apache para ele escutar em ambas as portas 80 e 443

vim /etc/httpd/conf/httpd.conf

Alterando a linha

Listen 80
para
Listen 80 443

Reinicie o serviço do httpd para aplicar as configurações e o serviço iniciar a escuta na porta 443

systemctl restart httpd

Neste momento estou efetuando a instalação do cliente do Let’s Encrypt

./root/letsencrypt/letsencrypt-auto

Como o comando acima já informa (auto), ele irá automaticamente detectar as configurações criadas no apache, para emitir os certificados necessários, seguem os passos utilizados na demonstração.

Instalar Certificado SSL Gratuito - Passo 1

Instalar Certificado SSL Gratuito - Passo 2

Instalar Certificado SSL Gratuito - Passo 3

Instalar Certificado SSL Gratuito - Passo 4

Instalar Certificado SSL Gratuito - Passo 5

Simplesmente está pronto, após passar pelas seleções acima o certificado está configurado e já pode ser acessado.

Primeiramente efetue o restart do seu servidor apache.

systemctl restart httpd

Acesse pelo seu browser o endereço informado pela última caixa acima.

No meu caso, esta demonstra diretamente https://demo.rafaelandrade.org pois eu já tinha configurado o virtual host desta forma.

Isso funciona pois ele automaticamente já configurou os arquivos do apache veja o conteúdo do arquivo criado pelo let’s encrypt dentro dos virtuais hosts do apache.

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/rafael"
ServerName demo.rafaelandrade.org
SSLCertificateFile /etc/letsencrypt/live/demo.rafaelandrade.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/demo.rafaelandrade.org/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/demo.rafaelandrade.org/chain.pem
</VirtualHost>
</IfModule>

Você pode fazer o teste e verificar se a instalação do certificado foi feita corretamente através dessas duas ferramentas:

https://www.sslshopper.com/ssl-checker.html

Instalar Certificado SSL Gratuito - SSL Shopper

https://www.ssllabs.com/ssltest/

Instalar Certificado SSL Gratuito - SSL Labs

Veja abaixo o certificado ssl grátis já instalado e configurado:

Instalar Certificado SSL Gratuito - Certificado instalado

Veja também o prazo de validade de 90 dias, sim este certificado ssl grátis possui validade de apenas 90 dias, e precisa ser atualizado em um período inferior a este, mas fique tranquilo, abaixo eu te mostro como fazer essa atualização.

Caso você precise redirecionar todo o tráfego do site para https já no primeiro acesso, configure seu virtualhost dessa forma:

<VirtualHost *:80>
DocumentRoot "/var/www/rafael"
ServerName demo.rafaelandrade.org
Redirect permanent / https://demo.rafaelandrade.org
</VirtualHost>

Lembrando que sua aplicação também deve estar configurada para trabalhar em https, muitas vezes não adianta configurar somente o seu virtualhost, no nosso blog tem alguns tutoriais que mostram como fazer essa função chamada Full HTTPS em aplicações como: WordPressMagento e OpenCart

Lembre-se sempre de reiniciar o serviço do apache para ativar as configurações.

systemctl restart httpd

Renovação automática do certificado

Lembre-se que os certificados SSL gratuitos emitidos pela Let’s Encrypt possuem validade de 90 dias, e você não quer renovar manualmente correto?

crontab -e

# Atualizar cliente do lets encrypt
00 5 * * 1 cd /root/letsencrypt && git pull

# Atualizar certificado SSL
00 6 * * 1 /root/letsencrypt/letsencrypt-auto renew >> /var/log/lets-encrypt-renew.org

Abaixo mostro como fazer para adicionar mais nomes (SANs) ao mesmo certificado, caso você possua mais de um site ou aplicação instalada no mesmo servidor:

Adicionando um novo vhost e também um novo certificado.

Lembre-se de criar o virtual host, conforme abaixo:

<VirtualHost *:80>
DocumentRoot "/var/www/demo2"
ServerName demo2.rafaelandrade.org
</VirtualHost>

Executar novamente a configuração do cliente, para a emissão do certificado gratuito.

./root/letsencrypt/letsencrypt-auto

Será identificado automaticamente que o servidor tem um virtual host adicional, conforma a caixa abaixo:

Instalar Certificado SSL Gratuito - Passo 9

Instalar Certificado SSL Gratuito - Passo 10

Instalar Certificado SSL Gratuito - Passo 11

Instalar Certificado SSL Gratuito - Passo 11

Instalar Certificado SSL Gratuito

Instalar Certificado SSL Gratuito

Limites do lets encrypt

1. No exemplo usamos dois nomes “demo” e “demo2”, o Let’s Encrypt tem um limite de 100 nomes em um mesmo certificado;
2. A quantidade de requisições é de 5 por SEMANA para cada domínio, nesse caso usei o domínio rafaelandrade.org, ou seja você pode certificar 5 x 100 = 500 páginas por semana 🙂
3. Você pode requisitar até 5 certificados para o mesmo FQDN por semana, ou seja caso você solicite rafaelandrade.org e www.rafaelandrade.org, até 5 destes certiificados com FQDN completos podem ser utilizados ao mesmo tempo, mas onde vou usar isto? Normalmente é usado em ambientes com Loadbalance
4. Por IP podem ser requeridos até 500 certificados a cada 3 horas, caso você necessite de um ambiente de testes por favor utilize o Staging Client neste link https://community.letsencrypt.org/t/testing-against-the-lets-encrypt-staging-environment/6763
5. Não existem limites de emissões para diferentes domínios, obedecendo somente os limites acima descritos POR DOMÍNIO:
https://www.linode.com/docs/security/ssl/install-lets-encrypt-to-create-ssl-certificates

Se você gostou deste conteúdo, peço que ajude mais pessoas a instalar o Certificado SSL gratuito no Apache, compartilhando este artigo com seus amigos.

Quer saber mais coisas sobre segurança? Acesse a categoria Segurança do Blog.

Caso tenha alguma dúvida sobre o assunto, por favor deixe seu comentário que terei o prazer de conversar com você a respeito.

E-book - Guia Prático Certificado SSL - Hospedagem de Sites - SECNET

Certificado SSL Gratuito para toda a internet - SECNET
A seguir:

Certificado SSL Gratuito para toda a internet

Certificado SSL Gratuito para toda a internet