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

From Wiki
 
(43 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:
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]'''"


== Definindo os valores default para a CA ==
= Criar um Certificado para o Servidor =


Edite o arquivo
1) Criar a chave privada do servidor:


* Linux: '''/etc/pki/tls/openssl.cnf'''
openssl genrsa -out server-key.pem 2048
* Windows: '''C:\Program Files\Common Files\SSL\openssl.cnf'''


e altere os dados da CA. Um exemplo de configuração final (apenas o bloco que interessa):
2) Criar uma solicitação de certificado (CSR) para o servidor:


  default_md  = '''sha256'''
  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='''ditec@test.net'''"
...
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
commonName_default              = '''Autoridade Certificadora do Test Net Company'''     ''# Vamos criar essa Linha''
emailAddress                   = Email Address
emailAddress_max                = 64
'''emailAddress_default            = ditec@company.com'''     ''# Vamos criar essa Linha


Salve e feche o arquivo


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


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


== Alterando o valor default do tempo de duração dos certificados ==
openssl x509 -req -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial
  -out server-cert.pem -days 730


Edite o arquivo
Será criado 2 arquivos:


* Linux: '''/etc/pki/tls/misc/CA'''
* server-csr.pem: Arquivo de requisição (CSR).
* Windows: '''C:\Program Files\OpenSSL-Win64\bin\CA.pl'''
* server-key.pem: Chave privada assinada
* server-cert.pem: Chave pública assinada


Alterando o tempo de duração do certificado da CA.  
Você pode apagar o arquivo server-csr.pem, pois ele não será mais utilizado.


Exemplo para 100 anos:
= Verificar os certificados =


$CADAYS="-days 36500";
1) Para verificar o certificado da CA:


O tempo de duração de um certificado comum é de 3 anos. Exemplo para 10 anos:
openssl x509 -in ca-cert.pem -text -noout


$DAYS="-days 3650";
3) Para verificar o certificado da CA:


Salve e feche o arquivo
openssl x509 -in server-cert.pem -text -noout


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


Execute o comando
Execute o comando


perl CA.pl -newca
  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 =
 
* [[OpenSSL: Assinando um CSR com a nossa CA]]
* [[OpenLDAP:Configurando um LDAP Proxy]]
 
 
*[[Tecnologias|  Mais Artigos sobre outras Tecnologias]]
*[[Apache HTTP Server|  Mais Artigos sobre Apache HTTP Server]]
*[[Linux|  Mais Artigos sobre Linux / UNIX / AIX]]


Aceite os valores default, pois já alteramos o openssl.cnf anteriormente.
[[Category:Linux]]
[[Category:Tecnologias]]
[[Category:Certificados TLS]]
[[Category:OpenSSL]]
[[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