Criando Autoridades Certificadores e Certificados de Testes no Linux

Script Linux destinado à criação de Cadeias de Autoridades Certificadores semelhantes às da ICP-Brasil. O script permite também criar Certificados de Testes para usuários, geração de Listas de Certificados Revogados e Assinatura de Certificados criados por meio de qualquer aplicação ou website.

[ Hits: 92.208 ]

Por: Larry Ramos em 12/09/2008


Conceitos básicos



Os usuários da Internet, esta super rede, tornaram-se muito mais exigentes. Hoje é imprescindível para qualquer website a utilização da criptografia. Os clientes esperam que no momento de enviar seus dados pessoais apareça um cadeado no canto inferior da tela. Eles aprenderam que desta forma é seguro enviar suas informações, mesmo sem saber como funciona o método de segurança para proteger a transmissão.

Se você já possui alguma experiência com programação Web provavelmente deve saber que a segurança dos dados em um formulário é feita pela mistura de um protocolo chamado SSL e pelo uso de Certificados Digitais.

Se você não tem familiaridade basta saber que seus dados são enviados embaralhados - ou, de forma mais técnica, encriptados - do seu computador para o website. Este método impede que um hacker consiga entender as informações que ele interceptou. Ou seja, a criptografia não impede que as informações sejam interceptadas, mas impede que elas sejam entendidas pelo atacante.

Este tutorial esclarece algumas dúvidas sobre os Certificados Digitais com uma linguagem simples e direta. Para auxiliar os programadores que não têm tempo e/ou necessidade de se preocupar em como criar certificados de testes para seus websites, criei um script em bash e configurei alguns arquivos de configuração do OpenSSL que criam uma cadeia de certificados semelhante aos certificados encontrados à venda.

    Próxima página

Páginas do artigo
   1. Conceitos básicos
   2. Perguntas que ninguém teve tempo pra te responder
   3. Instalação do Software
   4. Criando uma nova estrutura de Autoridade Certificadora (AC)
   5. Criando certificados de usuários
   6. Criando certificados de aplicações e websites
   7. Atualizando a validade de uma LCR
   8. Revogando um certificado de usuário
   9. Verificado as cadeias existentes
   10. Comandos úteis do OpenSSL
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando servidores pelo celular

Relatório do sistema (Shel Script + PHP)

Simples sistema de backup com acesso remoto

Yad 0.16 - Eu quero sempre mais de ti

Como programar backup com rsync e cron de maneira rápida e simples

  
Comentários
[1] Comentário enviado por grandmaster em 12/09/2008 - 21:05h

Ta bem legal. Mostrando passo a passo a coisa.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[2] Comentário enviado por larry.ramos em 16/09/2008 - 15:05h

Nota do autor: Segue o link para download do programa openssl_certs, citado no artigo:
http://www.go2linux.com.br/arquivos/openssl_certs.tar

Desculpem a falha!

Larry Ramos

[3] Comentário enviado por jefflee em 30/09/2008 - 13:09h

Olá Pessoal,

Excelente artigo, pois também mostra a importância e benefícios dos certificados digitais.

Jefferson Campos
GeoCert - http://www.rapidssl.com.br

[4] Comentário enviado por klebervirgilio em 10/02/2009 - 14:14h

Cara... não sei se aplica ao conteúdo deste artigo, mas talvez vc possa me ajudar!

Eu uso o Ubuntu 8.10, e tenho que acessar uma rede Wifi onde os administradores fornecem Certificados.cer para o acesso!

Minha pergunta é, como instalar o "*.cer" no Linux/Ubuntu ????

[5] Comentário enviado por larry.ramos em 12/02/2009 - 18:50h

Amigo, realmente esse item não é o meu forte, mas provavelmente você terá que fazer essa instalação usando o software gerenciador da rede Wifi (talvez o KNetwork Manager, que é o mais usado).
Larry

[6] Comentário enviado por naarea em 23/02/2011 - 14:08h

Por acaso alguem sabe aonde encontro uma fonte do http://www.go2linux.com.br/arquivos/openssl_certs.tar pois esse dominio já foi embora.

[7] Comentário enviado por larry.ramos em 26/04/2011 - 14:24h

Prezado naarea e demais interessados no Script referente a este artigo, segue o link do Script: http://code.google.com/p/certificacao-digital/downloads/detail?name=openssl_certs.tar.gz&can=2&q=

att,
Larry

[8] Comentário enviado por arianecf em 30/06/2011 - 17:07h

Caros, ao executar o script e criar uma nova cadeia de AC, várias mensagens de erro foram apresentadas. Alguém saberia dizer o problema?
Informe um nome para o diretorio da AC:
AC_Teste
awk: aviso: seqüência de escape `\/' tratada como `/' normal
awk: aviso: seqüência de escape `\/' tratada como `/' normal
awk: aviso: seqüência de escape `\/' tratada como `/' normal
sed: -e expressão #1, caractere 20: unknown option to `s'
sed: -e expressão #1, caractere 20: unknown option to `s'
sed: -e expressão #1, caractere 19: unknown option to `s'
sed: -e expressão #1, caractere 28: unknown option to `s'
Generating a 2048 bit RSA private key
................................................................................
................................................................................
...........................................................+++
...............................+++
writing new private key to './ACs/AC_Teste/private/ACRAIZ.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20660:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Error opening Certificate ./ACs/AC_Teste/certs/ACRAIZ.pem.cer
20661:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/ACRAIZ.pem.cer','r')
20661:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/ACRAIZ.der.cer
20662:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/ACRAIZ.der.cer','r')
20662:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
**** Assinatura do certificado da AC LINUX ****
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
Generating a 2048 bit RSA private key
.........................................................................+++
......+++
writing new private key to './ACs/AC_Teste/private/privada_LINUX.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20663:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
variable lookup failed for ca::default_ca
20666:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Error opening Certificate ./ACs/AC_Teste/certs/LINUX.pem.cer
20667:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX.pem.cer','r')
20667:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/LINUX.der.cer
20668:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX.der.cer','r')
20668:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
**** Assinatura do certificado da AC LINUX BRASIL ****
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
Generating a 2048 bit RSA private key
...............+++
.......+++
writing new private key to './ACs/AC_Teste/private/privada_LINUX_BRASIL.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20669:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
variable lookup failed for ca::default_ca
20670:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Error opening Certificate ./ACs/AC_Teste/certs/LINUX_BRASIL.pem.cer
20671:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX_BRASIL.pem.cer','r')
20671:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/LINUX_BRASIL.der.cer
20672:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX_BRASIL.der.cer','r')
20672:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Using configuration from ./ACs/AC_Teste/conf_openssl_ACRAIZ.conf
variable lookup failed for ca::default_ca
20673:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
variable lookup failed for ca::default_ca
20674:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
variable lookup failed for ca::default_ca
20675:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca

[9] Comentário enviado por manoel.junior em 11/12/2019 - 17:38h


[8] Comentário enviado por arianecf em 30/06/2011 - 17:07h

Caros, ao executar o script e criar uma nova cadeia de AC, várias mensagens de erro foram apresentadas. Alguém saberia dizer o problema?
Informe um nome para o diretorio da AC:
AC_Teste
awk: aviso: seqüência de escape `\/' tratada como `/' normal
awk: aviso: seqüência de escape `\/' tratada como `/' normal
awk: aviso: seqüência de escape `\/' tratada como `/' normal
sed: -e expressão #1, caractere 20: unknown option to `s'
sed: -e expressão #1, caractere 20: unknown option to `s'
sed: -e expressão #1, caractere 19: unknown option to `s'
sed: -e expressão #1, caractere 28: unknown option to `s'
Generating a 2048 bit RSA private key
................................................................................
................................................................................
...........................................................+++
...............................+++
writing new private key to './ACs/AC_Teste/private/ACRAIZ.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20660:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Error opening Certificate ./ACs/AC_Teste/certs/ACRAIZ.pem.cer
20661:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/ACRAIZ.pem.cer','r')
20661:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/ACRAIZ.der.cer
20662:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/ACRAIZ.der.cer','r')
20662:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
**** Assinatura do certificado da AC LINUX ****
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
Generating a 2048 bit RSA private key
.........................................................................+++
......+++
writing new private key to './ACs/AC_Teste/private/privada_LINUX.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20663:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
variable lookup failed for ca::default_ca
20666:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Error opening Certificate ./ACs/AC_Teste/certs/LINUX.pem.cer
20667:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX.pem.cer','r')
20667:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/LINUX.der.cer
20668:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX.der.cer','r')
20668:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
**** Assinatura do certificado da AC LINUX BRASIL ****
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
Generating a 2048 bit RSA private key
...............+++
.......+++
writing new private key to './ACs/AC_Teste/private/privada_LINUX_BRASIL.pem'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
20669:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=req name=distinguished_name
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
variable lookup failed for ca::default_ca
20670:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Error opening Certificate ./ACs/AC_Teste/certs/LINUX_BRASIL.pem.cer
20671:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX_BRASIL.pem.cer','r')
20671:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Error opening Certificate ./ACs/AC_Teste/certs/LINUX_BRASIL.der.cer
20672:error:02001002:system library:fopen:No such file or directory:bss_file.c:3
52:fopen('./ACs/AC_Teste/certs/LINUX_BRASIL.der.cer','r')
20672:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load certificate
Using configuration from ./ACs/AC_Teste/conf_openssl_ACRAIZ.conf
variable lookup failed for ca::default_ca
20673:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX.conf
variable lookup failed for ca::default_ca
20674:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca
Using configuration from ./ACs/AC_Teste/conf_openssl_LINUX_BRASIL.conf
variable lookup failed for ca::default_ca
20675:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_
lib.c:329:group=ca name=default_ca



Peguei este erro e resolvi alterando de:

LCR_ACRAIZ=`echo ${LCR_ACRAIZ} | awk '{gsub("/","\/");printf"%s",$0}'`
LCR_LINUX=`echo ${LCR_LINUX} | awk '{gsub("/","\/");printf"%s",$0}'`
LCR_ACLINUX_BRASIL=`echo ${LCR_ACLINUX_BRASIL} | awk '{gsub("/","\/");printf"%s",$0}'`

Para:

LCR_ACRAIZ=`echo ${LCR_ACRAIZ} | awk '{gsub("/","\\\\/");printf"%s",$0}'`
LCR_LINUX=`echo ${LCR_LINUX} | awk '{gsub("/","\\\\/");printf"%s",$0}'`
LCR_ACLINUX_BRASIL=`echo ${LCR_ACLINUX_BRASIL} | awk '{gsub("/","\\\\/");printf"%s",$0}'`

[10] Comentário enviado por diihdayrel em 25/02/2020 - 19:20h

Alguém sabe como resolver este erro? [RESOLVIDO]



tznode@tznode:/opt/openssl_certs$ sudo su
root@tznode:/opt/openssl_certs# ls -al
total 52
drwxrwxrwx 3 root root 4096 fev 25 19:12 .
drwxr-xr-x 10 root root 4096 fev 25 19:12 ..
drwxrwxrwx 3 root root 4096 fev 25 19:12 ACs
-rwxrwxrwx 1 tznode tznode 2603 set 10 2008 conf_openssl_ACRAIZ_padrao.conf
-rwxrwxrwx 1 tznode tznode 2774 set 10 2008 conf_openssl_LINUX_BRASIL_padrao.conf
-rwxrwxrwx 1 tznode tznode 2547 set 10 2008 conf_openssl_LINUX_padrao.conf
-rwxrwxrwx 1 tznode tznode 3049 set 10 2008 conf_openssl_USER_LINUX_BRASIL_padrao.conf
-rwxrwxrwx 1 tznode tznode 18252 fev 25 19:10 Criar_Certificados.sh
-rwxrwxrwx 1 tznode tznode 12 set 10 2008 pass
root@tznode:/opt/openssl_certs# ./Criar_Certificados.sh
***********************************************************************
* Script para Criacao de ACs e Certificados de Usuarios *
***********************************************************************
Lembrete:
A senha das chaves privadas fica gravada no arquivo ./pass e eh 'linux'
-----------------------------------------------------------------------
Escolha a opcao desejada:
1 - Para criar Nova Cadeia de AC
2 - Para Certificados de Usuarios
3 - Para atualizar uma LCR
4 - Para revogar um certificado
5 - Mostrar as Cadeias existentes
1
./Criar_Certificados.sh: 20: [: 1: unexpected operator
./Criar_Certificados.sh: 162: [: 1: unexpected operator
./Criar_Certificados.sh: 240: [: 1: unexpected operator
./Criar_Certificados.sh: 307: [: 1: unexpected operator
./Criar_Certificados.sh: 348: [: 1: unexpected operator
root@tznode:/opt/openssl_certs#


Encontrei a resposta:
Problemas na execução do script e troca de operador == por =


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts