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
- 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: