|
|
(24 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 Ltd'''
| |
|
| |
| 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 da Test Net Ltd'''
| |
|
| |
| emailAddress = Email Address
| |
| emailAddress_max = 64
| |
| | |
|
| |
|
| 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";
| |
|
| |
|
| O tempo de duração de um certificado comum é de 3 anos. Exemplo para 10 anos:
| | * server-csr.pem: Arquivo de requisição (CSR). |
| | * server-key.pem: Chave privada assinada |
| | * server-cert.pem: Chave pública assinada |
|
| |
|
| $DAYS="-days 3650";
| | Você pode apagar o arquivo server-csr.pem, pois ele não será mais utilizado. |
|
| |
|
| Salve e feche o arquivo
| | = Verificar os certificados = |
|
| |
|
| == Criando a CA ==
| | 1) Para verificar o certificado da CA: |
|
| |
|
| Execute o comando
| | openssl x509 -in ca-cert.pem -text -noout |
|
| |
|
| perl CA.pl -newca
| | 3) Para verificar o certificado da CA: |
|
| |
|
| ou
| | openssl x509 -in server-cert.pem -text -noout |
|
| |
|
| ./CA -newca
| | = Dicas = |
|
| |
|
| Com exceção do Common Name, aceite os valores default, pois já alteramos o openssl.cnf anteriormente.
| | == Gerar o certificado da CA usando a chave privada protegida por senha == |
|
| |
|
| Informe
| | Execute o comando |
| | |
| CA certificate filename (or enter to create)'''<ENTER>'''
| |
|
| |
| Making CA certificate ...
| |
| Generating a 2048 bit RSA private key
| |
| .........+++
| |
| ...........................+++
| |
| writing new private key to '/etc/pki/CA/private/./cakey.pem'
| |
| Enter PEM pass phrase:'''<INFORME UMA SENHA E ENTER>'''
| |
| Verifying - Enter PEM pass phrase:'''<INFORME UMA SENHA E ENTER>'''
| |
| -----
| |
| You are about to be asked to enter information that will be incorporated
| |
| into your certificate request.
| |
| What you are about to enter is what is called a Distinguished Name or a DN.
| |
| There are quite a few fields but you can leave some blank
| |
| For some fields there will be a default value,
| |
| If you enter '.', the field will be left blank.
| |
| -----
| |
| 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 Ltd]:'''<ENTER>'''
| |
| Organizational Unit Name (eg, section) [Ditec]:'''<ENTER>'''
| |
| Common Name (eg, your name or your server's hostname) [Autoridade Certificadora da Test Net Ltd]:'''<ENTER>'''
| |
| | |
|
| |
| Please enter the following 'extra' attributes to be sent with your certificate request
| |
| A challenge password []:'''<ENTER>'''
| |
| An optional company name []:'''<ENTER>'''
| |
| Using configuration from /etc/pki/tls/openssl.cnf
| |
| Enter pass phrase for /etc/pki/CA/private/./cakey.pem:'''<INFORME A SENHA ANTERIOR E ENTER>'''
| |
| Check that the request matches the signature
| |
| Signature ok
| |
| Certificate Details:
| |
| Serial Number:
| |
| 84:8f:08:9b:5d:d6:df:8f
| |
| Validity
| |
| Not Before: Nov 4 00:28:50 2020 GMT
| |
| Not After : Oct 11 00:28:50 2120 GMT
| |
| Subject:
| |
| countryName = BR
| |
| stateOrProvinceName = DF
| |
| organizationName = Test Net Ltd
| |
| organizationalUnitName = Ditec
| |
| commonName = Autoridade Certificadora da Test Net Ltd
| |
| | |
| X509v3 extensions:
| |
| X509v3 Subject Key Identifier:
| |
| 9B:96:1D:50:C6:E3:69:6B:07:99:17:17:50:91:80:6F:D8:14:4A:C5
| |
| X509v3 Authority Key Identifier:
| |
| keyid:9B:96:1D:50:C6:E3:69:6B:07:99:17:17:50:91:80:6F:D8:14:4A:C5
| |
|
| |
| X509v3 Basic Constraints:
| |
| CA:TRUE
| |
| Certificate is to be certified until Oct 11 00:28:50 2120 GMT (36500 days)
| |
|
| |
| Write out database with 1 new entries
| |
| Data Base Updated
| |
| | |
| = 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/CA/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 no Windows | |
| | |
| perl CA.pl -newreq
| |
| | |
| ou no Linux
| |
| | |
| ./CA -newreq
| |
| | |
| | |
| 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 Ltd]: '''<ENTER>'''
| |
| Organizational Unit Name (eg, section) [Ditec]:'''<ENTER>'''
| |
| Common Name (eg, YOUR name) []:'''www.test.net'''
| |
| | |
| | |
| Será criado 2 arquivos:
| |
|
| |
|
| * newreq.pem: Arquivo de requisição (CSR)
| | openssl genrsa -aes256 -out ca-key.pem 4096 |
| * newkey.pem: Chave privada assinada
| |
|
| |
|
| | 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. |
|
| |
|
| Assine a chave criada [[OpenSSL: Assinando um CSR com a nossa CA]]
| |
|
| |
|
| = Ver também = | | = Ver também = |
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