Configurar SSL para qualquer site é um desafio. Os visitantes do site, navegadores e mecanismos de busca recompensam um site devidamente seguro com Secure Sockets Layer (SSL). Anteriormente, esse processo envolvia a compra, instalação e configuração de um certificado SSL. Mas com o Cloudflare SSL, você pode concluir o processo de configuração do SSL com apenas alguns cliques!
Neste artigo, você aprenderá como configurar seu site com criptografia SSL via Cloudflare. Então, siga em frente para conexões SSL criptografadas de ponta a ponta!
Pré-requisitos
Para acompanhar este tutorial, são necessários alguns pré-requisitos listados abaixo:
- A Cloudflare account with an existing website and domain pointed to the Cloudflare nameservers.
- Um servidor Ubuntu Linux com NGINX instalado e configurado. Este tutorial demonstra o uso do Linux e do NGINX, mas o mesmo processo geral funciona para IIS ou Apache.
Configurando o Cloudflare Universal SSL: Apenas o Começo
Existem várias maneiras de configurar um SSL usando o Cloudflare. Muitas vezes, o método mais rápido é optar pelo SSL Universal. Porquê? Com o SSL Universal, em vez de procurar e comprar um certificado SSL, o Cloudflare provisiona um certificado e, em seguida, todo o tráfego enviado através do Cloudflare utilizará esse certificado.
Após habilitar o SSL Universal, o Cloudflare apresenta um certificado SSL válido tanto para visitantes quanto para motores de busca. Além disso, o Cloudflare não requer a configuração do servidor ou do site para utilizar esse certificado – muito prático!
1. Inicie o seu navegador da web e faça login no painel do Cloudflare.
2. Navegue até ao seu site a partir da lista de domínios da conta, conforme mostrado abaixo.

3. Agora, clique em SSL/TLS para visualizar as opções de criptografia do seu site.

4. Escolha a opção Flexível para habilitar o SSL Universal. Uma vez selecionada, a alteração tem efeito imediato. Seu site agora está criptografado entre o navegador e o Cloudflare!

Configurando a Criptografia SSL Completa de Ponta a Ponta
Embora o SSL Universal seja uma ótima opção para começar a proteger sites, ele deixa o tráfego entre o servidor e o Cloudflare sem segurança. Felizmente, existem dois modos de criptografia para criptografar o tráfego do Cloudflare para o servidor, criptografia Completa e Completa (estrita), cada um com principalmente diferentes requisitos de instalação de certificação.
- Completo – Requer um certificado no servidor, mas este pode ser um certificado autoassinado.
- Full (estrito) – O certificado do lado do servidor instalado deve ser um certificado válido.
Vamos analisar a diferença entre essas criptografias e como configurá-las.
Configurando a criptografia SSL/TLS completa com um certificado autoassinado
Ao contrário do SSL Universal, a criptografia SSL/TLS completa requer que seu servidor da web forneça corretamente um certificado SSL para criptografar o tráfego do servidor para o Cloudflare. Existem várias maneiras de realizar isso, mas este tutorial demonstra os passos em um servidor Linux com o NGINX.
Gerando um Certificado Autoassinado
Para criptografar a conexão entre o Cloudflare e o seu servidor de origem, você precisa de um certificado SSL. Como o modo de criptografia SSL/TLS completo não exige que o certificado seja totalmente confiável, você pode usar um certificado autoassinado para começar rapidamente.
1. Conecte-se ao seu servidor web Linux usando o Secure Shell (SSH).
2. Mude (cd
) para o diretório padrão SSL do Ubuntu (/etc/ssl
) executando o comando abaixo. cd /etc/ssl

/etc/ssl
directory3. Agora, gere as chaves pública e privada para o seu site com o comando openssl
. Para fazer isso, execute o comando openssl
abaixo.
Este comando realiza algumas coisas:
- Solicita (
req
) um certificado X.509 fornecido pelo parâmetro-x509
. - Quando referenciado pelo NGINX, permite que o NGINX leia o certificado durante a inicialização usando o parâmetro
-nodes
. - Especifica o número de
dias
que o certificado é válido. - Cria uma nova chave pública e privada com
-newkey
via criptografia RSA de 2048 bits (rsa:2048
). - Salva a chave privada em
/etc/ssl/private/nginx-selfsigned.key
com o parâmetro-keyout
. - Salva a chave pública em
/etc/ssl/certs/nginx-selfsigned.crt
usando o parâmetro-out
.
Se o
openssl
retornar um erro benigno deCan't load /root/.rnd into RNG
, será necessário comentar a linha#RANDFILE = $ENV::HOME/.rnd
no arquivo/etc/ssl/openssl.cnf
. Todas as versões modernas doopenssl
utilizam o dispositivo do sistema/dev/urandom
para dados de entropia aleatória e não requerem um arquivo específico para inicialização.
4. Após executar o comando com sucesso, o openssl solicitará algumas informações. Abaixo, você encontrará todos os valores fornecidos para este tutorial.
- Nome do País:
US
- Nome do Estado ou Província:
Illinois
- Nome da Localidade:
Bloomington
- Nome da Organização:
Test Company, LLC
- Nome da Unidade Organizacional: <em branco>
- Nome Comum:
test.adamlistek.me
- Endereço de Email:
[email protected]

5. Por último, verifique se o certificado existe usando o comando test
. Se o comando test
retornar (echo $?
) 0
, então o arquivo existe conforme esperado. Você pode ver na captura de tela a seguir que cada comando retornou um valor de 0.

Configurando o NGINX
Agora que o certificado foi gerado e armazenado nos locais de chave /etc/ssl/certs
e /etc/ssl/private
, o NGINX deve ser configurado para aplicar o certificado e servir o conteúdo do site.
As configurações do site do NGINX são definidas em blocos server
que geralmente são contidos em arquivos de host virtual. No exemplo abaixo, a configuração básica do site é armazenada no arquivo test.adamlistek.me.conf
e incluída no arquivo principal nginx.conf
.
1. Primeiro, crie um novo arquivo de host virtual com o nome de sua escolha, mas para este exemplo, nomeie-o como test.adamlistek.me.conf
no diretório /etc/nginx/vhosts.d
. Em seguida, copie o conteúdo abaixo para o arquivo de host virtual e salve-o.
Substitua o nome de domínio
test.adamlistek.me
pelo seu próprio, pois isso é apenas para fins de demonstração. E se o/etc/nginx/vhosts.d
diretório não existir, crie o diretório executandomkdir /etc/nginx/vhosts.d
.
2. Verifique se o seu arquivo de configuração principal do NGINX, /etc/nginx/nginx.conf
, contém a linha include
necessária dentro do bloco http
, localizado no final do bloco.
3. Reinicie o NGINX com o seguinte comando se estiver usando systemd, que é um moderno gerenciador de sistema e serviço para o Linux.
4. De volta ao Cloudflare, verifique se o certificado autoassinado está funcionando. Para fazer isso, desative a opção “orange-cloud” para o registro DNS em Proxy status, conforme mostrado abaixo. Desativar a opção “orange-cloud” contorna o Cloudflare e atende às solicitações diretamente do servidor web.

5. Certifique-se de que o site está retornando o certificado autoassinado recém-criado ao navegar para o site em seu navegador da web. Fazê-lo resultará em uma página de aviso, mostrada abaixo.

6. Por fim, ative a criptografia completa TLS/SSL no Cloudflare. Para fazer isso, reative o status de Proxy Cloudflare “orange-cloud” no registro DNS que você desativou anteriormente. Em seguida, vá para a guia SSL/TLS e clique no botão de opção Completo mostrado abaixo.

Gerando Certificados de Origem para Criptografia Completa (estrita) TLS/SSL
O modo de criptografia completa não garante que o certificado apresentado pelo servidor web tenha uma cadeia de certificados válida. Portanto, opte pela criptografia não estrita, e o Cloudflare aceitará qualquer certificado apresentado pelo servidor.
O Cloudflare oferece a capacidade de gerar um certificado TLS gratuito para proteger a conexão com o servidor de origem. No entanto, existem duas desvantagens ao usar um certificado de origem fornecido pelo Cloudflare. Uma é que você precisa gerar e instalar o certificado manualmente. A segunda é que o certificado parece um certificado autoassinado que nenhum navegador confiaria, exceto o Cloudflare.
É possível automatizar a geração de certificados usando o Endpoint de Criação de Certificado Origin CA, mas isso está além do escopo deste tutorial.
1. Navegue até o Servidor de Origem indo para a guia SSL/TLS —> Servidor Original, como mostrado abaixo, e clique no botão Criar Certificado.

2. Como você pode ver abaixo, as opções padrão já estão definidas para gerar um certificado wildcard para o domínio com 15 anos de validade — ótimo! Então, deixe as opções padrão e gere o certificado clicando no botão Criar no canto inferior direito da página.
A wildcard certificate, shown as
*.domain.com
, means that any subdomain will also be covered by this certificate including www.

3. Adicione o certificado recém-criado ao seu sistema Linux salvando as chaves privadas e públicas primeiro com o editor de texto GNU nano. Como existem duas chaves para salvar, você precisará salvar os arquivos de chave um de cada vez.
Certifique-se de salvar a Chave Privada, pois ela só está disponível no momento em que você gerou um Certificado Original. Se você perder acidentalmente esta chave, revogue o certificado e emita um novo certificado.
Abra um terminal, então crie e abra o arquivo de chave pública (nginx-test.adamlistek.me.crt
) no nano executando o primeiro comando abaixo.
Em seguida, volte para o Cloudflare e copie a chave do Certificado de Origem (chave pública) clicando na opção Clique para copiar, conforme mostrado abaixo. Em seguida, cole (Ctrl+U) a chave pública que você copiou para o arquivo de chave pública aberto no nano. Salve as alterações (Ctrl+O) e saia (Ctrl+X) do nano.
Depois de salvar o arquivo de chave pública, repita o mesmo processo de criação do arquivo de chave, copiando a chave do Cloudfare e salvando-a no arquivo de chave. Mas desta vez você está criando o arquivo de chave privada (nginx-test.adamlistek.me.key
).

4. Agora que você criou as chaves pública e privada, aponte o NGINX para a localização dos certificados. Faça isso modificando o arquivo de configuração test.adamlistek.me.conf
com as linhas abaixo, modificadas para suportar seu domínio.
5. Para aplicar os novos certificados, reinicie o NGINX com o seguinte comando.
6. Agora volte para a aba SSL/TLS no Cloudflare, atualize o modo de criptografia SSL/TLS clicando em Completo (estrito), como mostrado abaixo.

Habilitando a Criptografia SSL/TLS Completa (estrita) com LetsEncrypt
A maior desvantagem ao usar um certificado de origem do Cloudflare é que ele é apenas confiável pelo Cloudflare. Suponha que você precise de um certificado totalmente confiável pelo navegador, seja como um recurso de fallback ou para maior controle. Nesse caso, o LetsEncrypt oferece a capacidade de gerar um certificado adequado.
Embora você possa usar qualquer certificado válido, LetsEncrypt é uma escolha comum para gerar um certificado válido. Existem vários clientes LetsEncrypt disponíveis, mas este tutorial demonstra o cliente acme.sh.
Como você já está no Cloudflare, um dos melhores métodos para provisionamento DNS com LetsEncrypt é através da opção DNS.
1. Primeiro, abra seu terminal e instale o acme.sh via comando curl
.

2. Em seguida, crie ou modifique o arquivo account.conf
localizado no diretório de instalação para adicionar as chaves da API do Cloudflare salvas. Essas chaves podem ser encontradas na seção Perfil -> Tokens de API no painel do Cloudflare.
Embora seja possível criar um token específico com permissões limitadas, para os propósitos deste tutorial, utilize a Chave Global da API, conforme mostrado abaixo.
3. Gere o certificado por meio do seguinte comando. Observe que o comando abaixo instrui o cliente acme.sh
a usar o Cloudflare (dns_cf
) para verificar (--dns
) a propriedade do certificado. Em seguida, define o tempo de espera (--dnsslep
) para 20 segundos antes de emitir (--issue
) o certificado para (-d
) o domínio (test.adamlistek.me
).
Ao concluir o comando, abaixo, você verá os caminhos onde pode localizar seu certificado, chave do certificado, certificado intermediário CA e certificados de cadeia completa.

4. Como antes, modifique a configuração do site NGINX para alterar a localização do ssl_certificate
e ssl_certificate_key
. Certifique-se de substituir /home/user
pelo local onde está instalado seu acme.sh.
5. Aplique a nova configuração reiniciando o NGINX com o seguinte comando.
6. Por fim, atualize o modo de criptografia SSL/TLS do Cloudflare indo para a guia SSL/TLS, depois clique em Completo (estrito).

Conclusão
Ao longo deste tutorial, você aprendeu como proteger seu site com as várias opções de SSL/TLS fornecidas pela Cloudflare. Adicionar o LetsEncrypt à sua configuração SSL do Cloudflare também oferece uma opção de certificado de origem flexível e gerenciado pelo usuário!
Com o conhecimento das várias opções para garantir a conexão com o visitante do site, você trabalhará para obter uma conexão totalmente segura com seu servidor usando o SSL da Cloudflare?