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.027 ]

Por: Larry Ramos em 12/09/2008


Comandos úteis do OpenSSL



Verificando os dados da requisição:

# openssl req -inform PEM -in REQUISICAO.p10 -text

Verificando as informações de um arquivo PKCS#12:

# openssl pkcs12 -in ARQUIVO.pfx -info

Criando um arquivo PKCS#12 tendo como entradas a chave privada e o certificado:

# openssl pkcs12 -export -inkey CHAVE_PRIVADA.key -in CERTIFICADO.cer -out ARQUIVOP12.pfx

Retirando a senha de uma chave privada:

# openssl rsa -in CHAVE_COM_SENHA.key -out CHAVE_SEM_SENHA.key

Gerando hash de arquivos:

# openssl dgst -sha1 -c ARQUIVO.txt

Conectando a um servidor SSL via linha de comando:

# openssl s_client -connect www.caixa.gov.br:443

Encriptando um arquivo:

# openssl enc -e -salt -cast5-cbc -in ARQUIVO.txt -out ARQUIVO_ENCRIPTADO.txt.enc

Decriptando um arquivo:

# openssl enc -d -salt -cast5-cbc -in ARQUIVO_ENCRIPTADO.txt.enc -out ARQUIVO.txt

Página anterior    

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

Yad 0.16 - Eu quero sempre mais de ti

Relatório do sistema (Shel Script + PHP)

Script de firewall completíssimo

O comando tput

Aprendendo a melhorar os seus scripts

  
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