1. Configurar o SSL para qualquer site é um desafio. Os visitantes do site, os navegadores e os motores de busca recompensam um site devidamente Seguro com a Camada de Sockets (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, trabalhe para obter conexões SSL criptografadas de ponta a ponta!
Pré-requisitos
Para seguir este tutorial, são necessários alguns pré-requisitos abaixo:
- A Cloudflare account with an existing website and domain pointed to the Cloudflare nameservers.
- Um servidor Ubuntu Linux com o NGINX instalado e configurado. Este tutorial demonstra o uso do Linux e do NGINX, mas o mesmo processo geral funciona para IIS ou Apache.
Configurar 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. Por quê? 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 pelo Cloudflare usará esse certificado.
Após habilitar o SSL Universal, o Cloudflare apresenta um certificado SSL válido tanto para visitantes quanto para mecanismos de busca. Além disso, o Cloudflare não exige a configuração do servidor ou do site para usar esse certificado – bacana!
1. Abra seu navegador da web e faça login no painel do Cloudflare.
2. Navegue até o seu site na lista de domínios da conta, conforme mostrado abaixo.

3. Agora, clique em SSL/TLS para ver 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 entra em vigor imediatamente. Seu site agora está criptografado entre o navegador e o Cloudflare!

Configurando a Criptografia SSL de Ponta a Ponta Completa
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 criptografia completa (estrita), cada uma com requisitos de instalação de certificação principalmente diferentes.
- Completo – Requer um certificado no servidor, mas este pode ser um certificado autoassinado.
- Full (strict) – O certificado do servidor instalado no lado do servidor 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 exige que seu servidor da web forneça corretamente um certificado SSL para criptografar o tráfego do servidor para o Cloudflare. Existem muitas maneiras de fazer 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 seu servidor de origem, você precisa de um certificado SSL. Como o modo de criptografia SSL/TLS completa não exige que o certificado seja totalmente confiável, você pode usar um certificado autoassinado para começar rapidamente.
1. Acesse o seu servidor web Linux usando o Secure Shell (SSH).
2. Altere (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.
Esse 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 na inicialização usando o parâmetro
-nodes
. - Especifica o número de
dias
em 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
recorrem ao uso do dispositivo de entropia aleatória do sistema/dev/urandom
para dados de entropia aleatória e não exigem um arquivo específico para semeamento.
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: <vazio>
- Nome Comum:
test.adamlistek.me
- Endereço de E-mail:
[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 como 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-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 NGINX são definidas em blocos server
que normalmente estã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
dentro do 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 este é apenas para fins de demonstração. E se o/etc/nginx/vhosts.d
local não existir, crie o diretório executandomkdir /etc/nginx/vhosts.d
.
2. Verifique se seu arquivo de configuração principal do NGINX, /etc/nginx/nginx.conf
, contém a linha de include
necessária dentro do bloco http
, localizado no final do bloco.
3. Reinicie o NGINX com o seguinte comando se você estiver usando systemd, que é um moderno gerenciador de sistema e serviços para Linux.
4. Volte ao Cloudflare, verifique se o certificado autoassinado está funcionando. Para fazer isso, desative o “cloud-orange” para o registro DNS em Status do Proxy, conforme mostrado abaixo. Desativar a opção “cloud-orange” faz com que o Cloudflare seja ignorado e as solicitações sejam atendidas diretamente pelo servidor web.

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

6. Por fim, habilite a criptografia Full TLS/SSL no Cloudflare. Para fazer isso, reative o status de Proxy Cloudflare “nuvem laranja” no registro DNS que você desabilitou anteriormente. Em seguida, navegue até a guia SSL/TLS e clique no botão de opção Completo mostrado abaixo.

Gerando Certificados de Origem para Criptografia Full (estricta) SSL/TLS
O modo de criptografia completa não garante que o certificado apresentado pelo servidor web tenha uma cadeia de certificação válida real. 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 do seu servidor de origem. Mas há duas desvantagens em 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 além do Cloudflare.
É possível automatizar a geração de certificados usando o endpoint Origin CA Create Certificate API, 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 você vê abaixo, e clique no botão Criar Certificado.

2. Como você pode ver abaixo, as opções padrão já estão configuradas 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 primeiro as chaves privadas e públicas 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 essa chave, revogue o certificado e emita um novo certificado.
Abra um terminal e 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 Certificado de Origem (chave pública) clicando na opção Clique para copiar, como mostrado abaixo. Em seguida, cole (Ctrl+U) a chave pública que você copiou no 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), conforme mostrado abaixo.

Ativando a Criptografia SSL/TLS Completa (estrita) com LetsEncrypt
A maior desvantagem ao usar um certificado de origem do Cloudflare é que ele é confiável apenas pelo Cloudflare. Se você precisa de um certificado totalmente confiável pelo navegador, seja como alternativa ou para mais controle, o LetsEncrypt oferece a capacidade de gerar um certificado adequado.
Embora você possa usar qualquer certificado válido, o 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 o comando curl
.

2. O próximo passo é criar ou modificar o arquivo account.conf
localizado no diretório de instalação para adicionar as chaves de API do Cloudflare salvas. Essas chaves podem ser encontradas na seção Perfil —> Tokens de API do painel do Cloudflare.
Embora você possa criar um token específico com permissões limitadas, para os propósitos deste tutorial, use a Chave de API Global, conforme mostrado abaixo.
3. Gerar o certificado através do seguinte comando. Observe que o comando abaixo indica ao cliente acme.sh
para 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 da CA intermediária e certificados da cadeia completa.

4. Como antes, modifique a configuração do site do NGINX para alterar a localização do ssl_certificate
e ssl_certificate_key
. Certifique-se de substituir /home/user
pela localização onde está sua instalação do 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 diversas opções de SSL/TLS fornecidas pelo Cloudflare. Adicionar o LetsEncrypt à configuração SSL do seu Cloudflare proporciona 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ê seguirá o caminho para uma conexão totalmente segura com seu servidor usando o SSL do Cloudflare?