Segurança

Geração de certificado SSL/TLS na Cloudflare

Nós já falamos da Cloudflare por aqui e também no nosso blog do Criação .cc. Mas, o assunto que iremos abordar nessa postagem será sobre a geração de certificado SSL/TLS na Cloudflare de forma gratuita e muito fácil.

Antes de mais nada, precisamos entender o que é um certificado SSL/TLS e que são esses protocolos.

O SSL significa Secure Sockets Layer e é um tipo de segurança digital que garante a comunicação criptografada entre site e um navegador. Já, por sua vez, o TLS significa Transport Layer Security e vem substituindo o SSL com a evolução da tecnologia, já que ele funciona basicamente da mesma forma, porém certificando os pontos de comunicação. Então, quando um site possui SSL/TLS, pode ser utilizado o HTTPS (Hyper Text Transfer Protocol Secure), que é uma extensão do famoso HTTP, porém com essa camada de segurança e criptografia, garantindo que os dados que irão transacionar em um determinado site estarão criptografados.

Agora que já conhecemos a Cloudflare e o que é um certificado SSL/TLS, vamos entender a como gerar um pela Cloudflare.

Como gerar certificado pela Cloudflare

Antes de mais nada, esse tutorial é baseado no tutorial oficial oferecido pela Cloudflare, que você pode encontrar clicando aqui.

O primeiro passo é ter uma conta na Cloudflare, se você quiser aprender a como criar, pode clicar aqui.

O segundo passo é você já ter feito a migração do seu domínio para a Cloudflare. Ou seja, migrar os servidores de nomes (ou mais conhecidos como servidores NS). A própria Cloudflare orienta a como fazer esses passos no momento de configuração da conta.

Com os servidores NS e a tabela DNS já na Cloudflare, pode ser gerado então o certificado HTTPS que tem duração para 15 anos e pode ser reutilizado em todos os subdomínios do seu domínio principal. Ou seja, não é preciso gerar um certificado para cada subdomínio, mas sim, um geral.

Então, sem mais enrolação, vamos aprender a criar esse certificado.

Na sua conta da Cloudflare, acesse a opção SSL/TLS na barra superior do menu.

Ícone no menu para acessar a opção SSL/TLS

Na tela de SSL/TLS, selecione a opção Origin Server.

Menu Origin Server listando todos os cerificados criados e a opção Create Certificate

Nessa tela serão mostrados todos os certificados que você possui, além da data de expiração e para quais domínios ele se aplica.

Clique na opção Create Certificate.

Etapa de criação do certificado onde são listados o tipo do certificado, validade e quais os hostnames que serão cobertos pelo certificado. Além da opção de criação.

Aqui é recomendado apenas clicar em create, mas você pode definir se quer o certificado somente para o domínio principal, para todos os subdomínios ou para um subdomínio em especifico. Após validar os dados, clique em Create.

Nesse momento, serão demonstrados duas caixas de texto, uma contendo o certificado e a outra contendo a chave privada. É muito importante você ter cuidado nessa etapa e copiar as informações. Ou seja, copiar o texto do certificado e o texto da chave privada, pois a partir do momento que você fechar, essas informações não estarão mais disponíveis e para conseguir, terá de revogar o certificado e gerar novamente.

Como configurar o certificado no NGINX

Com o certificado gerado, agora basta configurar no servidor que você utiliza. No nosso caso, vou exemplificar a configuração utilizando o NGINX.

No seu servidor, você terá que criar alguns arquivos para o funcionamento correto. O primeiro deles será o cert.pem. Nesse arquivo deverá conter o conteúdo que você copiou na etapa anterior, na caixa de texto referente ao certificado. Além disso, é necessário adicionar mais uma informação a esse arquivo, para assim funcionar corretamente.

Você terá então que editar o arquivo cert.pem e adicionar ao final dele, após —–END CERTIFICATE—–, o seguinte texto:

-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIID+rOSdTGfGcwDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTQwMgYDVQQLEytDbG91
ZEZsYXJlIE9yaWdpbiBTU0wgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRYwFAYDVQQH
Ew1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMB4XDTE5MDgyMzIx
MDgwMFoXDTI5MDgxNTE3MDAwMFowgYsxCzAJBgNVBAYTAlVTMRkwFwYDVQQKExBD
bG91ZEZsYXJlLCBJbmMuMTQwMgYDVQQLEytDbG91ZEZsYXJlIE9yaWdpbiBTU0wg
Q2VydGlmaWNhdGUgQXV0aG9yaXR5MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMw
EQYDVQQIEwpDYWxpZm9ybmlhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAwEiVZ/UoQpHmFsHvk5isBxRehukP8DG9JhFev3WZtG76WoTthvLJFRKFCHXm
V6Z5/66Z4S09mgsUuFwvJzMnE6Ej6yIsYNCb9r9QORa8BdhrkNn6kdTly3mdnykb
OomnwbUfLlExVgNdlP0XoRoeMwbQ4598foiHblO2B/LKuNfJzAMfS7oZe34b+vLB
yrP/1bgCSLdc1AxQc1AC0EsQQhgcyTJNgnG4va1c7ogPlwKyhbDyZ4e59N5lbYPJ
SmXI/cAe3jXj1FBLJZkwnoDKe0v13xeF+nF32smSH0qB7aJX2tBMW4TWtFPmzs5I
lwrFSySWAdwYdgxw180yKU0dvwIDAQABo2YwZDAOBgNVHQ8BAf8EBAMCAQYwEgYD
VR0TAQH/BAgwBgEB/wIBAjAdBgNVHQ4EFgQUJOhTV118NECHqeuU27rhFnj8KaQw
HwYDVR0jBBgwFoAUJOhTV118NECHqeuU27rhFnj8KaQwDQYJKoZIhvcNAQELBQAD
ggEBAHwOf9Ur1l0Ar5vFE6PNrZWrDfQIMyEfdgSKofCdTckbqXNTiXdgbHs+TWoQ
wAB0pfJDAHJDXOTCWRyTeXOseeOi5Btj5CnEuw3P0oXqdqevM1/+uWp0CM35zgZ8
VD4aITxity0djzE6Qnx3Syzz+ZkoBgTnNum7d9A66/V636x4vTeqbZFBr9erJzgz
hhurjcoacvRNhnjtDRM0dPeiCJ50CP3wEYuvUzDHUaowOsnLCjQIkWbR7Ni6KEIk
MOz2U0OBSif3FTkhCgZWQKOOLo1P42jHC3ssUZAtVNXrCk3fw9/E15k8NPkBazZ6
0iykLhH1trywrKRMVw67F44IE8Y=
-----END CERTIFICATE-----

Dessa forma o seu cert.pem ficará com dois certificados. Um que você gerou pelo site da Cloudflare, e outro que é o certificado root para algumas validações, fornecido pela Cloudflare.

O segundo arquivo que você terá que criar é o key.pem. Nesse arquivo estará presente o conteúdo que você copiou da chave privada durante a geração do certificado. Nesse não será preciso adicionar mais informações, apenas aquele bloco de texto.

Por fim o terceiro arquivo é o certificado da Cloudflare para funcionar a opção Authenticated Origin Pulls, que aumenta a segurança do seu site. Na Cloudflare, no menu SSL/TLS e na opção Authenticated Origin Pulls, marque como On.

Opção Ahtenticated Origin Pulls com botão para ativar.

No nosso caso, como estamos utilizando o NGINX, criaremos o arquivo /etc/nginx/certs/cloudflare.crt contendo o conteúdo do bloco abaixo. O tutorial completo sobre essa opção pode ser encontrado nesse link.

-----BEGIN CERTIFICATE-----
MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
+4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
fVQ6VpyjEXdiIXWUq/o=
-----END CERTIFICATE-----

Agora, basta adicionarmos as linhas abaixo ao NGINX. Lembre-se de alterar o caminho para os arquivos cert.pem e key.pem.

    ssl_certificate [caminho]/cert.pem;
    ssl_certificate_key [caminho]/key.pem;
    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;

E por fim, basta ativar a opção Proxied no registro de DNS que aponta para o seu site, fazendo assim com que a validação do certificado se inicie.

Registro de DNS com a opção Proxied ativa.

Abaixo iremos ver algumas configurações extras para aumentar a segurança e comunicação do seu site.

Configurações extras

A primeira delas está ligada ao tipo da comunicação do SSL/TLS. Essa configuração é muito importante para garantir que seu site, ao se comunicar, valide todos os certificados da Cloudflare, garantindo a origem deles. Essa opção pode ser alterada na opção Overview da aba SSL/TLS.

O maior nível e o recomendado é a opção Full (strict). Dessa forma a Cloudflare sempre irá validar os certificados e apenas confiar nos certificados de origem que criamos anteriormente. Nessa opção também todas as requisições feitas são usando SSL, não precisando ter a configuração da porta 80 no seu servidor, já que todas chegarão pela porta 443.

Status do SSL/TLS, podendo escolher entre Off, Flexible, Full ou Full (strict).

As próximas configurações são alteradas na aba Edge Certificates e a grande maioria já vem ativa.

Aba Edge Certificates

Ative a opção Always use HTTPS para garantir que todas as requisições serão feitas através de HTTPS.

Opção Always Use HTTPS com botão para ativar.

Em paralelo a essa opção, ative também a Automatic HTTPS Rewrites. Essa opção ajudará caso algum conteúdo do seu site esteja utilizando HTTP. A Cloudflare tentará fazer o redirecionamento desse conteúdo para HTTPS, para evitar assim o problema de mixed content.

Opção Automatic HTTPS Rewrites com botão para ativar.

E por fim, as opções abaixo devem permanecer com o padrão configurado. Ou seja, a opção Minimum TLS Version deve estar selecionada em TLS 1.0 (default) e as opções Opportunistic Encryption e TLS 1.3 devem estar ativadas.

Opções Minimum TLS Version selecionada na opção TLS 1.0 e opções Opportunistic Encryption e TLS 1.3 com opções de ativar.

Finalização

Então é isso galera, hoje aprendemos a como criar e configurar um certificado pela Cloudflare de forma gratuita e simples. Aumentando assim a segurança, privacidade e confiabilidade do seu site, utilizando todo o poder que a Cloudflare entrega.

Comenta aqui embaixo se você gostou desse post ou se ele foi útil para a sua configuração.

//see you later

Compartilhe este post

Deixe uma resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *