Há diversas formas e ferramentas utilizada para gerar certificados digitais. Aqui, utilizarei o OpenSSL – um utilitário opensource bastante conhecido para esse tipo de trabalho. O arquivo de instalação pode ser encontrado no endereço: http://www.openssl.org. Já o arquivo “openssl.cnf”, citado nos exemplos de comandos abaixo é o arquivo padrão que é criado ao instalar o openssl.

Criando certificados de Autoridade Certificadoras Raízes

Os certificados das Autoridades Certificadoras (ou CA, do inglês “Certificate Authority”) Raízes são utilizados para emitir certificados que contem a Lista de Certificados Revogados (ou CRL, do inglês “Certificate Revogation List”), Certificados de Pessoa Física (e-CPF), certificados de Pessoa Jurídica (e-CNPJ), etc. A prinicipal diferença desses tipos de certificados é o fato de eles serem auto assinados. Como exemplo, temos, aqui no Brasil, A ICP Brasil, que é a Autoridade Certificadora Raiz Brasileira, responsável pelo controle dos certificados digitais brasileiros.

Para criar um certificado, é necessário, antes, gerar a chave privada e a requisição do certificado, que é o arquivo a ser enviado às autoridades certificadoras para que elas possam gerar o certificado. Abaixo, segue os exemplos de como gerar a chave privada, a requisição do certificado e o certificado propriametne dito.

Criando a chave privada

A chave privada pode ser utilizada para cifrar mensagens. Isso garante que a sua emissão tenha sido feita pelo seu dono, garantindo, assim, a sua autenticidade. Essa chave é muito importante e deve ser guardada com segurança.

Comando:

openssl genrsa -des3 -out ca-key.pem 1024

Descrição do comando:

  • genrsa – opção utilizada para gerar uma chave privada;
  • -des3 – opção utilizada para diminuir o trafego da rede;
  • -out ca-key.pem – opção que informa o nome do arquivo gerado (“ca-key.pem”);
  • 1024 – Opção utilizada para informar o tamanho da chave privada, em bits.

Será pedido uma senha para a chave privada. Como resultado da execução do comando acima, teremos um arquivo “ca-key.pem” que conterá uma chave privada, criptografada com o algoritmo DES3, de 1024 bits de tamanho.

Criando a requisição do certificado

Comando:

openssl req -new -key ca-key.pem -out ca-csr.pem -config openssl.cnf -days 3650

Descrição do comando:

  • req – opção para gerar certificados e requisições;
  • -new – opção para criar um novo certificado;
  • -key ca-key.pem – informa a chave privada utilizada para gerar a requisição;
  • -out ca-csr.pem – diz para salvar a requisição do certificado em um arquivo “ca-csr.pem”;
  • -config openssl.cnf – informa o arquivo de configuração que conterá as informações do certificado;
  • -days 3650 – gera a requisição com uma validade de 3650 dias;

Após informar o comando acima, será necessário informar a senha da chave privada utilizada e algumas outras informações contidas no arquivo “openssl.cnf”. Como resultado da execução desse comando, teremos o arquivo “ca-csr.pem”. Trata-se de uma requisição de certificado que normalmente é enviada para uma Autoridade Certificadora Confiável para que esta possa emitir o certificado com as informações contidas nesse arquivo.
Porém, como o certificado será auto assinado, iremos, nós mesmos, criá-lo e assiná-lo conforme abaixo:

Criando o certificado auto assinado

Commando:

openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem
Descrição do comando:

  • x509 – opção para gerar certificados e requisições do tipo x509;
  • -req – opção para gerar o certificado a partir de uma requisição;
  • -in ca-csr.pem – informa o arquivo “ca-csr.pem”(requisição de certificado) utilizado como base para gerar o certificado;
  • -signkey ca-key.pem – informa a chave privada “ca-key.pem” utilizada para assinar o certificado;
  • -out ca-cert.pem – diz para salvar o certificado em um arquivo chamado “ca-cert.pem”.

O comando acima irá criar um certificado digital, assiná-lo com a chave privada informada e armazená-lo em um arquivo chamado ca-cert.pem. Se julgar necessário, este arquivo poderá ser renomeado para ca-cert.crt ou ca-cert.cer para melhor integração com aplicativos.

No final, teremos, como principais arquivos, o certificado da Autoridade Certificadora e a sua chave privada. O arquivo ca-csr.pem não é mais necessário e pode ser apagado. Nos posts futuros irei demonstrar como criar certificados de autoridades certificadoras intermediárias, certificados de sites, e certificados de Pessoas Físicas. Espero que tenham gostado! Qualquer dúvida, sugestão ou reclamação é só postar no comentário.

Links úteis:

Anúncios

Hello world!

Publicado: 07/07/2010 em Uncategorized

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!