Como posso assinar um controle ActiveX com um certificado de assinatura de código e ser um editor verificado?

StackOverflow https://stackoverflow.com/questions/2814233

Pergunta

Estou tentando assinar um controle ActiveX com um certificado de assinatura de código emitido pela Thawte. Consegui assinar com êxito o controle usando o SignTool.exe.

Quando olho para as propriedades do arquivo, ele diz "o certificado na assinatura não pode ser verificado".

Quando vejo o certificado, ele diz "o Windows não possui informações suficientes para verificar o certificado".

Na guia Caminho de certificação, diz que "o emissor deste certificado não pode ser encontrado".

No Internet Explorer, o certificado é reconhecido como assinado, mas o usuário recebe avisos de que o editor não é verificado.

Tentei criar um único arquivo PFX que contém meu certificado, juntamente com os certificados raiz e intermediário, essa cadeia para o meu certificado de desenvolvedor de Thawte e, em seguida, assinando o controle usando esse arquivo PFX. Sem dados.

Alguma sugestão?

Foi útil?

Solução

A pergunta realmente contém o procedimento correto- faça a assinatura usando um arquivo PFX que contém o certificado raiz, o certificado intermediário, o certificado de desenvolvedor e a chave privada. Além disso, use um servidor de data e hora. Meu problema era que eu tinha o certificado raiz errado incluído no meu PFX, para que o certificado usado para assinar não pudesse voltar à raiz.

Por solicitação, aqui estão as informações sobre como criar o arquivo PFX. O Cert2SPC e o PVK2PFX que eu uso abaixo também estão no SDK da plataforma.

cert2spc certpath1.cer certpath2.cer certpath3.cer codesign.spc

Onde a lista de arquivos .Cer inclui os certificados raiz, intermediário e de assinatura de código, e o codesign.spc é o arquivo de saída. Então:

pvk2pfx -pvk privkey.pvk -spc codesign.spc

A execução do PVK2PFX dessa maneira inicia um assistente que solicita a senha de chave privada e a localização do arquivo de saída e a senha do arquivo de saída.

Finalmente, o SignTool faz a assinatura de código real:

signtool sign /f my_certificates.pfx /p my_passphrase /t http://timestamp.verisign.com/scripts/timstamp.dll my_activex_control.ocx

Em retrospecto, eu poderia ter economizado tempo usando o SignCode.exe, também conhecido como o assistente de assinatura de código (que eu acho que faz parte do .NET SDK) que usa arquivos .spc e .pvk diretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top