Página 1 de 3
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 04 Dez 2021 19:56
por rochinha
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
Código: Selecionar todos
@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,
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 04 Dez 2021 20:23
por JoséQuintas
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....
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 04 Dez 2021 20:26
por JoséQuintas
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 03:29
por rochinha
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 08:53
por JoséQuintas
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 13:22
por rochinha
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 13:49
por Ana Mitoooo
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 15:29
por rochinha
Amiguinhos,
Caso não encontrem as ferramentas usadas no processo baixe de
https://5volution.com.br/downloads/MyCAROOT.zip
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 18:05
por dbsh
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 19:00
por JoséQuintas
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 19:06
por JoséQuintas
Esqueci de dizer:
Dá pra assinar EXE usando CAPICOM.
Se não me engano, tá na sefazclass.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 05 Dez 2021 21:12
por rochinha
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 06 Dez 2021 13:48
por carlos_dornelas
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:
no teu .bat está assim:
Código: Selecionar todos
-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...
Onde posso estar errando?
[]s
Antonio Carlos - Curitiba PR
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 07 Dez 2021 00:23
por rochinha
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.
Assinatura Digital de aplicativos sem OpenSSL
Enviado: 07 Dez 2021 11:27
por pauloa1
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