Certificação Digital no Linux - Apache2
Nesse artigo iremos explicar o conceito básico de certificação digital, mostraremos como se gera uma requisição de certificado, chaves privadas e públicas e configurações https do Apache2 para que nosso site possua certificado digital.
Parte 4: Gerando uma "Chave Privada"
Depois de instalado o Open-SSL e o Apache corretamente, vamos dar início a um processo simples, mas que se não for bem definido e as etapas seguidas corretamente, o sucesso no final não será possível.
É importante entendermos o porquê de se gerar uma chave privada, e qual é o seu conteúdo. Bem, uma "Chave Privada", será um arquivo criptografado que conterá informações da máquina local, máquina onde teremos nosso WebServer e configuraremos nosso certificado digital. Esse primeiro processo é bem simples:
Gerando uma "Chave Privada":
1º Passo - Vamos entrar no diretório padrão do apache:
# cd /usr/local/apache2/
2º Passo - Criaremos um diretório dentro da pasta padrão do apache para guardarmos nossos certificados:
# mkdir certificados
# cd certificados
3º Passo - Dentro no diretório /usr/local/apache2/certificados/, vamos executar o seguinte comando:
# openssl genrsa -des3 -out chave_privada.key 2048
O comando acima gera uma chave privada de 2048 Bits usando o algoritmo de criptografia "des3". O conteúdo da chave gerada e o procedimento acima descrito deve ser algo similar ao mostrado abaixo:
Generating RSA private key, 2048 bit long modulus
..........................+++
............................................................+++
e is 65537 (0x10001)
Enter pass phrase for chave_privada.key:
Verifying - Enter pass phrase for chave_privada.key:
Onde "Enter pass ..." será onde você irá fornecer uma senha para sua chave privada e "Verifying...", você irá confirma essa chave.
A senha que foi pedida para gerar nossa "chave privada" tem que ser bem guardada, pois será a mesma para gerarmos nossa requisição, e a mesma que nosso certificado final irá ter.
O conteúdo do arquivo gerado "chave_privada.key" deverá ter seu conteúdo similar ao mostrado abaixo:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,E7B3E16C75B9B3A7
/gHPQa+nvYTAFGGkGoGShAFv+l5TR4cKuphmH/XkfoequQGJZi4eT7KOiEIyC3FZ
0jOG5NY7ZL5z6Ds1/0j/LP7aefgHoqW+/oxHmSZ+GI2il5DxTTqsVot5g9Z08+lv
4yvFksBs/biC9MTIx2/3K48aiH7rSOoDJK4LwEXeGhEakZ8T7lwXHb4L+qNdqigV
dUmH8QU6j6lwp2cyGd4SU2M8HkD5W1ZnWJbjyhFPcE0atKx25yeBI0yx9p3N7/sg
SP8nIHrZ8wy0rU0uzTLsze4YWp75Vh2Zb2eiX7yivomrqbEVF4+/+CcxnT4kEaRb
/N5IPAkNKucx5PEfl47qSDUNf88tVzjtk/ENQ6wH+koftu7IMHB1nmYuV57Be+Tr
ifcj+VsG5kT9gi0dUFcrODQRhFf8Wi9wTDJpQ1x5fSUa38L8dZCR+Tr90zcIaHN0
MNmdxO9b9Fat6UH6deyOMoh6GIcjgeO2+HNjnvqwJVKCsYwbWMJvQdudb2pz2fiu
bHQGl9g2VvmkZ2qHX68WPsHljvCXyNzeTtMj7pIxEEnejzF/Oqfn1mum/t3ef+Sk
hnaOkrUBMxJtgf983/6Ygi/IOQsjidfmR8y1lqzw36M8SXjgZVrJWwWsnxUG9zZd
oe3cuJwjpLGMmnSfMbsqwU4T/NvXArdDuT8GOv9RjfUkXQV8zxUcFn5vT0Q5qkz6
tO7gFUxk0zYwPkasCV0iKlFEtd9IUO9Kc6+Ru5rNLvu35NjXEhQfIMiUR+7Ef+lL
JFIpfd0ILAnPKRywDJcfT5sNQvDC9IYU7ScoX0zP/d7Jkt6sXtxWbFJKjGPz30iS
dMshNLoNsQIv4vpUUvPzNYnNxj2U361SO8oXNfj/OymjD1Z/FrT3cfdxsFt8UvEO
VzDYDPU0eQES7noH96fNQB3+kgw+j7acl87y2T8nDxDGYxUBolWvES9sIDgCTT5d
MwJ6OdRvLs9C5oylr/SplyTV0f+XZeOILZkpbWAvY0gjtzsqImr4TYi2fHhaVznS
gpncswBoT/sSuWq2uvOkbZCafeEdbckSCft5BH8MyuMpYXl4xsvn2rrM9S1p2ESx
eRAyqzdWaYpy20DvJrGJBdo/raI5MRHbuEPSm5HyrXngxMPf0wdpsWyAU+NLktuj
xIu+mG1Ll77H7nmxvqlcizEl2keeGTmzrdqDfyaxdowpZu3FkB37GaYKR2+i9kU4
1Vyn2Y13sgufp7233xBfrweKYxcKdPWMjU0s6t9/kXo/VMHemMF9tiQEZxSbdZ+y
5nqArpqLJDw1C104uDqqrtihI9WU53M0aAUBgPZ8tK4xeSdElYMxl3mQOkYwyiNl
G+yyXqlFZkpKAESdNScSlBO4PHdnLWTEaLhtTsTfaWvANpDbOp3z5k6aoxwgRWYa
w2B99M5/2Kfx6na4Ial3hHgBC7UE7q0ZA2TOotN8TKkCitGVk+bOpC6ND8o2fZ6a
1V7WNWRGH14kvIHk6eId/avcN1hTfWvFxhFvJsIHwJFLGNM86A2eA8IDg9wkwE8u
SPOHD10kg6Uh2nL1MY1+PmI27ekvJpIRSzaye7JbSMNhAK4uyhcaAA==
-----END RSA PRIVATE KEY-----
Vale lembrar que a chave privada tem que ser bem guardada e não pode ser passada a ninguém. Pois com ela você pode criar novos certificados.
Outro fato a se atentar é em uma possível migração.
Caso no futuro, você mude seu WebServer de máquina, você vai precisar dessa chave privada. Mesmo ela sendo gerada em outro servidor é ela que você vai utilizar para gerar seu certificado. Logo, o certificado ficará amarrado a esta chave, e sem ela você não poderá configurar seu certificado em outra máquina, caso precise.
É importante entendermos o porquê de se gerar uma chave privada, e qual é o seu conteúdo. Bem, uma "Chave Privada", será um arquivo criptografado que conterá informações da máquina local, máquina onde teremos nosso WebServer e configuraremos nosso certificado digital. Esse primeiro processo é bem simples:
Gerando uma "Chave Privada":
1º Passo - Vamos entrar no diretório padrão do apache:
# cd /usr/local/apache2/
2º Passo - Criaremos um diretório dentro da pasta padrão do apache para guardarmos nossos certificados:
# mkdir certificados
# cd certificados
3º Passo - Dentro no diretório /usr/local/apache2/certificados/, vamos executar o seguinte comando:
# openssl genrsa -des3 -out chave_privada.key 2048
O comando acima gera uma chave privada de 2048 Bits usando o algoritmo de criptografia "des3". O conteúdo da chave gerada e o procedimento acima descrito deve ser algo similar ao mostrado abaixo:
Generating RSA private key, 2048 bit long modulus
..........................+++
............................................................+++
e is 65537 (0x10001)
Enter pass phrase for chave_privada.key:
Verifying - Enter pass phrase for chave_privada.key:
Onde "Enter pass ..." será onde você irá fornecer uma senha para sua chave privada e "Verifying...", você irá confirma essa chave.
A senha que foi pedida para gerar nossa "chave privada" tem que ser bem guardada, pois será a mesma para gerarmos nossa requisição, e a mesma que nosso certificado final irá ter.
O conteúdo do arquivo gerado "chave_privada.key" deverá ter seu conteúdo similar ao mostrado abaixo:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,E7B3E16C75B9B3A7
/gHPQa+nvYTAFGGkGoGShAFv+l5TR4cKuphmH/XkfoequQGJZi4eT7KOiEIyC3FZ
0jOG5NY7ZL5z6Ds1/0j/LP7aefgHoqW+/oxHmSZ+GI2il5DxTTqsVot5g9Z08+lv
4yvFksBs/biC9MTIx2/3K48aiH7rSOoDJK4LwEXeGhEakZ8T7lwXHb4L+qNdqigV
dUmH8QU6j6lwp2cyGd4SU2M8HkD5W1ZnWJbjyhFPcE0atKx25yeBI0yx9p3N7/sg
SP8nIHrZ8wy0rU0uzTLsze4YWp75Vh2Zb2eiX7yivomrqbEVF4+/+CcxnT4kEaRb
/N5IPAkNKucx5PEfl47qSDUNf88tVzjtk/ENQ6wH+koftu7IMHB1nmYuV57Be+Tr
ifcj+VsG5kT9gi0dUFcrODQRhFf8Wi9wTDJpQ1x5fSUa38L8dZCR+Tr90zcIaHN0
MNmdxO9b9Fat6UH6deyOMoh6GIcjgeO2+HNjnvqwJVKCsYwbWMJvQdudb2pz2fiu
bHQGl9g2VvmkZ2qHX68WPsHljvCXyNzeTtMj7pIxEEnejzF/Oqfn1mum/t3ef+Sk
hnaOkrUBMxJtgf983/6Ygi/IOQsjidfmR8y1lqzw36M8SXjgZVrJWwWsnxUG9zZd
oe3cuJwjpLGMmnSfMbsqwU4T/NvXArdDuT8GOv9RjfUkXQV8zxUcFn5vT0Q5qkz6
tO7gFUxk0zYwPkasCV0iKlFEtd9IUO9Kc6+Ru5rNLvu35NjXEhQfIMiUR+7Ef+lL
JFIpfd0ILAnPKRywDJcfT5sNQvDC9IYU7ScoX0zP/d7Jkt6sXtxWbFJKjGPz30iS
dMshNLoNsQIv4vpUUvPzNYnNxj2U361SO8oXNfj/OymjD1Z/FrT3cfdxsFt8UvEO
VzDYDPU0eQES7noH96fNQB3+kgw+j7acl87y2T8nDxDGYxUBolWvES9sIDgCTT5d
MwJ6OdRvLs9C5oylr/SplyTV0f+XZeOILZkpbWAvY0gjtzsqImr4TYi2fHhaVznS
gpncswBoT/sSuWq2uvOkbZCafeEdbckSCft5BH8MyuMpYXl4xsvn2rrM9S1p2ESx
eRAyqzdWaYpy20DvJrGJBdo/raI5MRHbuEPSm5HyrXngxMPf0wdpsWyAU+NLktuj
xIu+mG1Ll77H7nmxvqlcizEl2keeGTmzrdqDfyaxdowpZu3FkB37GaYKR2+i9kU4
1Vyn2Y13sgufp7233xBfrweKYxcKdPWMjU0s6t9/kXo/VMHemMF9tiQEZxSbdZ+y
5nqArpqLJDw1C104uDqqrtihI9WU53M0aAUBgPZ8tK4xeSdElYMxl3mQOkYwyiNl
G+yyXqlFZkpKAESdNScSlBO4PHdnLWTEaLhtTsTfaWvANpDbOp3z5k6aoxwgRWYa
w2B99M5/2Kfx6na4Ial3hHgBC7UE7q0ZA2TOotN8TKkCitGVk+bOpC6ND8o2fZ6a
1V7WNWRGH14kvIHk6eId/avcN1hTfWvFxhFvJsIHwJFLGNM86A2eA8IDg9wkwE8u
SPOHD10kg6Uh2nL1MY1+PmI27ekvJpIRSzaye7JbSMNhAK4uyhcaAA==
-----END RSA PRIVATE KEY-----
Vale lembrar que a chave privada tem que ser bem guardada e não pode ser passada a ninguém. Pois com ela você pode criar novos certificados.
Outro fato a se atentar é em uma possível migração.
Caso no futuro, você mude seu WebServer de máquina, você vai precisar dessa chave privada. Mesmo ela sendo gerada em outro servidor é ela que você vai utilizar para gerar seu certificado. Logo, o certificado ficará amarrado a esta chave, e sem ela você não poderá configurar seu certificado em outra máquina, caso precise.
Att.,
Bruno Lima