OpenSSL: Criando uma Autoridade Certificadora (CA): Difference between revisions

From Wiki
 
(34 intermediate revisions by the same user not shown)
Line 5: Line 5:
= Procedimento =
= Procedimento =


== Instalando ==


1) Instalando os Pacotes
1) Instalando os Pacotes do openssl no RedHat Linux


  yum install -y openssl
  yum install -y openssl
 
= Criando uma Autoridade Certificadora =
= Criando uma Autoridade Certificadora =


1) Criar a chave privada da CA:


== Definindo os valores default para a CA ==
openssl genrsa -out ca-key.pem 4096


Edite o arquivo
2) Gerar o certificado da CA com detalhes personalizados:


* Linux: '''/etc/pki/tls/openssl.cnf'''
openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -days 3650 \
* Windows: '''C:\Program Files\Common Files\SSL\openssl.cnf'''
-subj "/C='''BR'''/ST='''DF'''/L=/O='''TestNet Ltd'''/CN='''Autoridade Certificadora da TestNet Ltd'''/emailAddress='''ditec@test.net'''"


e altere os dados da CA. Um exemplo de configuração final (apenas o bloco que interessa):
= Criar um Certificado para o Servidor =


default_md  = '''sha256'''
1) Criar a chave privada do servidor:
...
default_bits = '''2048'''
'''...'''
countryName                    = Country Name (2 letter code)
countryName_default            = '''BR'''
...
stateOrProvinceName            = State or Province Name (full name)
stateOrProvinceName_default    = '''DF'''
localityName                    = Locality Name (eg, city)
localityName_default            = '''Brasilia'''      ''# Esta linha, normalmente, não existe e você deverá criá-la.''
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = '''Test Net Company'''
organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = '''Ditec'''    ''# Vamos descomentar essa Linha''
commonName                      = Common Name (eg, YOUR name)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 64
emailAddress_default            = '''[email protected]'''      ''# Vamos criar essa Linha


Salve e feche o arquivo
openssl genrsa -out server-key.pem 2048


2) Criar uma solicitação de certificado (CSR) para o servidor:


Edite o arquivo
openssl req -new -key server-key.pem -out server-csr.pem \
  -subj "/C='''BR'''/ST='''DF'''/L=/O='''TestNet Ltd'''/CN='''server01.test.net'''/emailAddress='''[email protected]'''"


== Alterando o valor default do tempo de duração dos certificados ==


Edite o arquivo
Você precisará fornecer informações semelhantes ao preencher o certificado da CA.


* Linux: '''/etc/pki/tls/misc/CA'''
3) Assinar o CSR do servidor com a CA para obter o certificado do servidor:
* Windows: '''C:\Program Files\OpenSSL-Win64\bin\CA.pl'''


Alterando o tempo de duração do certificado da CA.  
openssl x509 -req -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial
  -out server-cert.pem -days 730


Exemplo para 100 anos:
Será criado 2 arquivos:


$CADAYS="-days 36500";
* server-csr.pem: Arquivo de requisição (CSR).
* server-key.pem: Chave privada assinada
* server-cert.pem: Chave pública assinada


O tempo de duração de um certificado comum é de 3 anos. Exemplo para 10 anos:
Você pode apagar o arquivo server-csr.pem, pois ele não será mais utilizado.


$DAYS="-days 3650";
= Verificar os certificados =


Salve e feche o arquivo
1) Para verificar o certificado da CA:


== Criando a CA ==
openssl x509 -in ca-cert.pem -text -noout


Execute o comando
3) Para verificar o certificado da CA:


  perl CA.pl -newca
  openssl x509 -in server-cert.pem -text -noout


Com exceção do Common Name, aceite os valores default, pois já alteramos o openssl.cnf anteriormente.
= Dicas =


Informe
== Gerar o certificado da CA usando a chave privada protegida por senha ==
 
Country Name (2 letter code) [BR]: '''<ENTER>'''
State or Province Name (full name) [DF]:'''<ENTER>'''
Locality Name (eg, city) [Brasilia]:'''<ENTER>'''
Organization Name (eg, company) [Test Net Company]: '''<ENTER>'''
Organizational Unit Name (eg, section) [Ditec]:'''<ENTER>'''
Common Name (eg, YOUR name) []:'''Autoridade Certificadora do Test Net Company'''
Email Address [[email protected]]:'''<ENTER>'''
 
= Disponibilizando a CA =
 
Agora que criamos a CA, vamos disponibilizar ele para importar no Navegador, ou para ser importado na Trust Store.
 
O certificado raiz é o arquivo
 
* Linux: '''/etc/pki/tls/demoCA/cacert.pem'''
* Windows: '''C:\Program Files\OpenSSL-Win64\bin\demoCA\cacert.pem'''
 
Renomeie-o para ''ca-company.crt'' e coloque em um site interno para download ou distribua via Police no MS Windows (GPO).
 
 
= Criando um par de Chaves=


Execute o comando
Execute o comando


perl CA.pl -newreq
  openssl genrsa -aes256 -out ca-key.pem 4096
 
 
Informe
 
Country Name (2 letter code) [BR]: '''<ENTER>'''
State or Province Name (full name) [DF]:'''<ENTER>'''
Locality Name (eg, city) [Brasilia]:'''<ENTER>'''
Organization Name (eg, company) [Test Net Company]: '''<ENTER>'''
Organizational Unit Name (eg, section) [Ditec]:'''<ENTER>'''
Common Name (eg, YOUR name) []:'''www.test.net'''
Email Address [[email protected]]:'''ditec@test.net'''


Será criado 2 arquivos:
Isso criará uma chave privada encriptada com o algoritmo AES256 e um tamanho de 4096 bits para a sua CA. Ao executar esse comando, você será solicitado a inserir uma senha para proteger a chave privada.


* newreq.pem: Arquivo de requisição (CSR)
* newkey.pem: Chave privada assinada


= Ver também =
= Ver também =
Line 141: Line 80:


[[Category:Linux]]
[[Category:Linux]]
[[Category:Tecnologias]]
[[Category:Certificados TLS]]
[[Category:OpenSSL]]
[[Category:OpenSSL]]
[[Category:Tecnologias]]
[[Category:ikeyman]]

Latest revision as of 22:04, 7 December 2023

Vou mostrar como criar uma Autoridade Certificadora (CA).

Esse CA vai ser utilizado nos meus exemplos de configuração IBM Sterling.

Procedimento

1) Instalando os Pacotes do openssl no RedHat Linux

yum install -y openssl

Criando uma Autoridade Certificadora

1) Criar a chave privada da CA:

openssl genrsa -out ca-key.pem 4096

2) Gerar o certificado da CA com detalhes personalizados:

openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -days 3650 \
-subj "/C=BR/ST=DF/L=/O=TestNet Ltd/CN=Autoridade Certificadora da TestNet Ltd/emailAddress=[email protected]"

Criar um Certificado para o Servidor

1) Criar a chave privada do servidor:

openssl genrsa -out server-key.pem 2048

2) Criar uma solicitação de certificado (CSR) para o servidor:

openssl req -new -key server-key.pem -out server-csr.pem \
 -subj "/C=BR/ST=DF/L=/O=TestNet Ltd/CN=server01.test.net/emailAddress=[email protected]"


Você precisará fornecer informações semelhantes ao preencher o certificado da CA.

3) Assinar o CSR do servidor com a CA para obter o certificado do servidor:

openssl x509 -req -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial 
  -out server-cert.pem -days 730

Será criado 2 arquivos:

  • server-csr.pem: Arquivo de requisição (CSR).
  • server-key.pem: Chave privada assinada
  • server-cert.pem: Chave pública assinada

Você pode apagar o arquivo server-csr.pem, pois ele não será mais utilizado.

Verificar os certificados

1) Para verificar o certificado da CA:

openssl x509 -in ca-cert.pem -text -noout

3) Para verificar o certificado da CA:

openssl x509 -in server-cert.pem -text -noout

Dicas

Gerar o certificado da CA usando a chave privada protegida por senha

Execute o comando

 openssl genrsa -aes256 -out ca-key.pem 4096

Isso criará uma chave privada encriptada com o algoritmo AES256 e um tamanho de 4096 bits para a sua CA. Ao executar esse comando, você será solicitado a inserir uma senha para proteger a chave privada.


Ver também