Clipper On Line • Ver Tópico - Assinatura Digital de aplicativos sem OpenSSL

Assinatura Digital de aplicativos sem OpenSSL

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 04 Dez 2021 19:56

Amiguinhos,

Eis os passos para a geração de certificado digital 1A básico para assinatura de executáveis. Serve até para assinar NF-e mas não para enviar.

Salve o conteúdo dentro de criacert.bat
@cls
@del RDS*.cer RDS*.pvk RDS*.pfx
@certutil -delstore Root RDS-CARoot
@rem certmgr.exe

@echo Criando certificado raiz...
@makecert.exe ^
-n "CN=RDS-CARoot" ^
-r ^
-pe ^
-a sha512 ^
-len 4096 ^
-sky Signature ^
-cy authority ^
-sv RDS-CARoot.pvk ^
RDS-CARoot.cer

@echo Instalando certificado raiz...
@certutil.exe -user -addstore Root RDS-CARoot.cer
@rem RDS-CARoot.cer

@echo Previsualiza se certificado raiz foi bem Instalando...
@RDS-CARoot.cer

@echo Criando certificado terminal baseado no certificado raiz...
@makecert.exe ^
-n "C=BR/ST=SP/L=Sao Paulo/O=JOSE CARLOS DA ROCHA 10838555868/OU=Minha Empresa Desenvolvimento/CN=13536613000106/emailAddress=email@meusite.com.br" ^
-iv RDS-CARoot.pvk ^
-ic RDS-CARoot.cer ^
-pe ^
-a sha512 ^
-len 4096 ^
-b 07/05/2021 ^
-e 07/05/2030 ^
-sky Exchange ^
-eku 1.3.6.1.5.5.7.3.1 ^
-sv RDS-SERVER.pvk ^
RDS-SERVER.cer

@dir rds*.* /od
@pause

@echo Criando certificado PFX...
@pvk2pfx.exe ^
-pvk RDS-SERVER.pvk ^
-spc RDS-SERVER.cer ^
-pfx RDS-SERVER.pfx ^
-po 123123

@echo Assinando aplicativo diretamente com PFX
@rem signtool sign /v /f RDS-SERVER.pfx ^ /t http://timestamp.url MyExecutable.exe

@echo Assinando aplicativo a partir do repositorio interno com PFX
@rem signtool sign /v /n "Me" /s SPC ^ /t http://timestamp.url MyExecutable.exe

@dir *.pvk *.pfx *.cer *.ext *.csr *.pem *.key


Confirme antes se seu Windows possui as seguintes ferramentas certutil.exe, makecert.exe, pvk2pfx.exe, signtool.exe. Geralmente ficam dentro das pastas do .NET.

Os comandos de assinatura do executável estão REMarcados. O certificado gerado pode ser usado por 10 anos para assinar mas só precisa ser gerado uma vez.

Usei a senha 123123 em todas as vezes que me foi questionada.

Faça as suas mudanças.

Certificado Raiz:
- Será pedida a senha nas duas primeiras telas,
- Será pedida para fazer a instalação do certificado,
- As propriedades do certificado aparecerão para a instalação,
- Proceda na instalação e escolha, Colocar todos os certificados no repositório Autoridades de Certificação Raiz Confiável,

Certificado Terminal:
- Será pedida a senha em várias telas,
- Os arquivos criados serão apresentados numa lista,
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor JoséQuintas » 04 Dez 2021 20:23

E de onde saiu esse certificado RDS-CAroot?
Acho estranho, porque se fosse fácil assim, não se venderiam mais certificados.

Gerar pra nota eletrônica... difícil... teria que convencer a Fazenda a definir que você é uma autoridade reconhecida em criar certificado raiz.
Gerar pra cliente... talvez... desde que convença um administrador de rede que você tem autoridade reconhecida em criar certificado raiz.
Pra clientes meia-boca, que usam Windows pirata, não tem administrador, etc... pra esses, qualquer coisa que pedir pra fazer, eles fazem.

Um certificado comprado, ele é de uma autoridade que já é reconhecida pelo Windows, e se essa autoridade reconhece seu certificado, fim do assunto.

Outra:
Se fosse fácil assim.... pra que merd. serve o certificado? qualquer hacker criaria um.

Só acredito vendo....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor JoséQuintas » 04 Dez 2021 20:26

Se possível, mande um EXE assinado com esse certificado pra mim dar uma olhada e fazer testes básicos.
Pode ser um XML de NFE assinado também.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 05 Dez 2021 03:29

Amiguinhos,

JoséQuintas a sequencia de comandos cria dois certificados, um é o CA-Root que será usado como certificador do Certificado de Terminal.

Ele seria padrão A1, mas não certifica SEFAZ. É o que chamamos de certificado auto-assinado.

Veja os .csr, .cer ou .crt gerados e no final um deles é transformado em .pfx.

Veja que após ser gerado o CA-Root, ele pede senhas umas duas vezes, mostra o certificado como inválido e permite instalar. Ao instalar direcionamos para o repositório de certificados confiáveis e após podemos ver se o mesmo já se encontra válido.

Na sequencia este certificado raiz, instalado é acionado para gerar o certificado de terminal, onde também solicita senhas e então é gerado o mesmo.

Finalizando os comandos pvk2pfx criam o .pfx que tambémdeverá ser instalado ou usado diretamente na assinatura de um arquivo seja, .exe, .pdf, dentro do ACBrMonitor.

Mas entenda, o processo de assinatura de documentos independe de certificadora como o SEFAZ e você consegue assinar normalmente um XML mas no momento do envio é que ele não passa.

O método que passei é usado para criar certificados para sites.

Acho que daria para usar como certificado raiz um certificado A1 real já que este é fictício funcional.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor JoséQuintas » 05 Dez 2021 08:53

Vamos ao lado prático, que é exatamente o que acontece com o certificado.

Eu digo que não vale, você diz que vale.

Então, qual é a autoridade, acima de nós dois, que vai comprovar ou não.

Nota:

.CER é certificado somente com chave pública, somente pra conferência de assinatura
.PFX é certificado com chave pública e particular, justamente a chave particular é usada pra assinar documentos

QUALQUER XML de nota eletrônica contém um certificado .CER dentro dele, depois de assinado, lógico.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 05 Dez 2021 13:22

Amiguinhos,

JoséQuintas veja que como eu disse este não é um certificado que vai nos permitir sair das garras das certificadoras, mas da forma como ele é criado permite assinar com validade documental, ou seja, o aplicativo ou documento assinado confere algum controle de segurança que permita que antivirus olhem com bons olhos(se é que tem olhos) os mesmos.

Se não me engano foi você mesmo que disse em alguma postagem que assinatura dos executáveis do Harbour tornam a compilação mais rápida.

Resumindo: Este certificado gerado Raiz e Terminal não é para burlar certificadoras. Apenas nos auxiliar no desenvolvimento.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor Ana Mitoooo » 05 Dez 2021 13:49

Ana Mitoooo
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 82
Data de registro: 17 Out 2018 10:00
Cidade/Estado: Sobradinho/DF
Curtiu: 41 vezes
Mens.Curtidas: 36 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 05 Dez 2021 15:29

Amiguinhos,

Caso não encontrem as ferramentas usadas no processo baixe de https://5volution.com.br/downloads/MyCAROOT.zip
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor dbsh » 05 Dez 2021 18:05

Este certificado não se destina a autorizar NFe/NFCe, pode usar para teste.
Você pode usar em uma VPN, no processo de login sem senha, e outros que precisem de segurança, para identificar que foi você o autor do arquivo ou solicitação.
Uso no frente de caixa para treinar operadores, instalo um impressora PDF e o sistema vai funcionar sem ter mudar o modo de funcionamento, só pulei a autorização.
Uso no cliente onde salvo o CNPJ do cliente no certificado .
Nunca usei desta forma, desconhecia.
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 15 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor JoséQuintas » 05 Dez 2021 19:00

Apenas comentário:
Quando fiz meu primeiro certificado, veio desse jeito que Ana Mitoooo mostrou.
Vieram as duas partes, e juntei as duas pra gerar o pfx.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor JoséQuintas » 05 Dez 2021 19:06

Esqueci de dizer:
Dá pra assinar EXE usando CAPICOM.
Se não me engano, tá na sefazclass.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 05 Dez 2021 21:12

Amiguinhos,

Este certificado não se destina a autorizar NFe/NFCe, pode usar para teste.
Você pode usar em uma VPN, no processo de login sem senha, e outros que precisem de segurança, para identificar que foi você o autor do arquivo ou solicitação.
Uso no frente de caixa para treinar operadores, instalo um impressora PDF e o sistema vai funcionar sem ter mudar o modo de funcionamento, só pulei a autorização.
Uso no cliente onde salvo o CNPJ do cliente no certificado .
Nunca usei desta forma, desconhecia.

Exatamente o que estou tentando deixar claro.

Dá pra assinar EXE usando CAPICOM.

CAPICOM sozinha não assina né, você precisa de algum certificado .crt+.key ou .pfx

O CAPICOM e OpenSSL são os motores. O método com makecert com certeza usa o CAPICOM já que faz parte do .NET.

Então temos 3 ferramentas para permitir a criação de certificados sendo, OpenSSL, MakeCert e KeyTool(java).

Com KeyTool tive dificuldades, MakeCert é muito simples, ja o OpenSSL é muito mais completo e também complexo.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor carlos_dornelas » 06 Dez 2021 13:48

Boa tarde!!

Show de Bola Rochina, obrigado por compartilhar!

Criei uma pasta D:\CERTIFICADO e salvei o CRIACERT.BAT conforme o .bat que você postou no início. Modifiquei/reduzi a linha a seguir pois estava dando erro nela, acho que pelo tamanho... entao reduzi ela para:
-n "C=BR/ST=SP/L=Sao Paulo/CN=13536613000106" ^

no teu .bat está assim:
-n "C=BR/ST=SP/L=Sao Paulo/O=JOSE CARLOS DA ROCHA 10838555868/OU=Minha Empresa Desenvolvimento/CN=13536613000106/emailAddress=email@meusite.com.br" ^


No mais mantive tudo igual, inclusive a senha 123123

O CRIACERT executa, pede a senha várias vezes e cria todos os arquivos RDS-*, porém, na hora de assinar o meu executável diz que a password não está correta...

Imagem

Onde posso estar errando?

[]s

Antonio Carlos - Curitiba PR
carlos_dornelas
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 392
Data de registro: 25 Ago 2004 21:54
Curtiu: 0 vez
Mens.Curtidas: 10 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor rochinha » 07 Dez 2021 00:23

Amiguinhos,

carlos_dorneles
Creio que se somente retirar /emailAddress=email@meusite.com.br o comando passa.

Quanto a resposta de senha incorreta já é um indício de que deu certo 99%. Refaça o processo e certifique-se que colocou a mesma senha em todos os pedidos de senha. Digite a senha no bloco de notas e cole em todos os pedidos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinatura Digital de aplicativos sem OpenSSL

Mensagempor pauloa1 » 07 Dez 2021 11:27

Olá Rochinha!!

Segui os passos e gerou o certificado RDS-SERVER.pfx.

Mas ao vincular com o exe do sistema da esse erro.

C:\devel\doc>C:\devel\Testes\signtool.exe sign /v /f "c:\devel\doc\RDS-SERVER.pfx" /p 123123 /t "http://timestamp.verisign.com/scripts/timstamp.dll" /a "c:\sccn\sccn_hw.exe"
SignTool Error: No certificates were found that met all the given criteria.

Como se não tivesse encontrado o certificado.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 16 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro