Click here to load reader
Upload
leandro-almeida
View
251
Download
0
Embed Size (px)
Citation preview
Curso Técnico de Manutenção e Suporte em InformáticaSegurança da Informação
Prof. Leandro AlmeidaCertificação Digital – Criando uma Autoridade Certificadora
OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz.
1. Preparativos iniciaisUsaremos a ferramenta OpenSSL para gerar um par de chaves pública e privada e para
gerar um certificado digital para uma Autoridade Certificadora. Após isso iremos assinar requisições de certificados de clientes.
Para instalar o OpenSSL:
# aptget install openssl
Vamos configurar o ambiente para nossa CA:
# cd /opt# mkdir CA# cd CA# mkdir newcerts private# echo '01' > serial# touch index.txt
Devemos criar fazer o download do arquivo openssl.cnf do site do professor com o comando:
# wget http://dl.dropbox.com/u/22560647/iDEZ/CTMSI/Seguran%C3%A7a%20da%20Informa%C3%A7%C3%A3o/openssl.cnf
2. Criando um par de chavesPara criar a chave privada digite:
# openssl genrsa des3 out private/CA.key 1024
As opções indicam o seguinte:
-genrsa indica ao OpenSSL que voce quer gerar um par de chaves-des3 indica que a chave privada deve ser criptografada. Vai pedir uma password e vaicifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o algoritmo AES).-out indica onde salvar a chave privada1024 indica o número de bits da chave gerada
Você pode verificar a chave criada com o comando:
# openssl rsa text in private/CA.key | more
Agora vamos gerar a chave pública com o comando:
# openssl rsa –in private/CA.key –pubout –out CA.pub
3. Criando um certificado raizPara criar um certificado raiz, use o comando:
# openssl req new x509 –key private/CA.key extensions v3_ca out CA_RAIZ.pem days 3650
As opções são as seguintes:-new -x509 pede para criar um novo certificado no formato X.509-extensions v3_ca indica extensão necessária para criar um certificado raiz-days 3650 indica a validade do certificado (10 anos)-out indica o nome do arquivo que conterá o certificado
Você pode vizualizar o certificado com o comando:
# openssl x509 in CA_RAIZ.pem noout text | more
4. Criando um pedido de assinatura de certificado(Certificate Signing Request – CSR)Um Pedido de Assinatura de Certificado (CSR) é um conjunto de informações de um
cliente que são enviados para um Certificate Authority (CA) para serem assinadas, ou seja, para queseja criado um certificado para esse cliente.
Aqui, faremos o papel do cliente solicitante e também do certificador. Ou seja, geraremos um CSR e depois nós mesmo assinaremos. Normalmente, um cliente não é também um certificador e, nesses casos, ele enviaria o CSR para um certificador e receberia o certificado.
Assuma que somos um cliente e queremos criar um certificado para um site na web. Então vamos criar um pedido de assinatura de um certificado (CSR) para o sitewww.SEUNOME.com.br com o comando:
# openssl req new nodes out www.SEUNOME.csr –keyout www.SEUNOME.key
O arquivo www.SEUNOME.csr contém o CSR que deve ser enviado para o Certificador.
O arquivo www.SEUNOME.key contém a chave privada do cliente e deve ser mantida em segredo pelo cliente.
5. Criando um certificado a partir de um CSR(ou assinando um certificado)Agora assuma que somos a autoridade certificadora e que recebemos o CSR do cliente
(gerado no item anterior). Vamos criar o certificado para o cliente solicitante(www.SEUNOME.com.br) com o comando:
# openssl ca –out www.SEUNOME.pem –keyfile private/CA.key –cert CA_Raiz.pem –config openssl.cnf –infiles www.SEUNOME.csr
As opções são as seguintes:ca subcomando do openssl para geração de certificados-out o nome do certificado a ser gerado-keyfile indica o arquivo contendo a chave privada do certificador-cert indica o arquivo contendo o certificado raiz do certificador-config indica o nome do arquivo de configuração (com outras opções e defaults)-infiles os arquivos contendo os CSR a serem assinados
6. Testando o certificadoVamos simular um servidor WWW usando o OpenSSL. Ele ficará escutando na porta
4433 uma conexão e estabelecerá uma conexão SSL quando um browser contactá-lo. Para isso, digite o comando:
# openssl s_server –cert www.SEUNOME.pem –www –key www.SEUNOME.key
Agora abra um browser na mesma máquina e acesse o seguinte URL: https://localhost:4433 . Voce pode acessar de um browser em outra máquina, usando a URL https://IP:4433, onde IP é o endereço IP do host que está rodando o openssl s_server.