Curso Técnico de Manutenção e Suporte em Informática
                         Segurança da Informação
                          Prof. Leandro Almeida
                 Certificação Digital – Criando uma Autoridade Certificadora

OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz.

   1. Preparativos iniciais
       Usaremos 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:

      # apt­get 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 chaves
      Para 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 vai
       cifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o
       algoritmo AES).
       -out indica onde salvar a chave privada
       1024 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 raiz
      Para 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 site
www.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 certificado
        Vamos 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.

Unidade7 roteiro

  • 1.
    Curso Técnico deManutenção e Suporte em Informática Segurança da Informação Prof. Leandro Almeida Certificação Digital – Criando uma Autoridade Certificadora OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz. 1. Preparativos iniciais Usaremos 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: # apt­get 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 chaves Para criar a chave privada digite: # openssl genrsa ­des3 ­out private/CA.key 1024 As opções indicam o seguinte:
  • 2.
    -genrsa indica aoOpenSSL que voce quer gerar um par de chaves -des3 indica que a chave privada deve ser criptografada. Vai pedir uma password e vai cifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o algoritmo AES). -out indica onde salvar a chave privada 1024 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 raiz Para 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 site www.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.
  • 3.
    O arquivo www.SEUNOME.keyconté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 certificado Vamos 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.