Usando seu certificado de assinatura de código

Esta página da Web fornece instruções sobre como usar um SSL.com OV or EV certificado de assinatura de código com SignTool da Microsoft e SSL.com SSL Manager.

Estas instruções pressupõem que seu certificado de assinatura de código foi instalado ou que você o possui em um token de hardware. Para assinatura de código baseada em nuvem usando a plataforma eSigner, consulte o página de visão geral e esta guia de inscrição.

Lembre-se de que, para certificados de assinatura de código OV e EV baseados em hardware, a chave privada existe apenas no token USB YubiKey FIPS que foi enviado a você e que o token deve ser anexado ao computador que está sendo usado para assinar o aplicativo. Os usuários do Windows com tokens YubiKey FIPS também devem baixar e instalar o Minidriver de cartão inteligente YubiKey antes de usar seu token.

OV e Os certificados de assinatura de código EV não devem ser instalados manualmente no computador, o que pode causar problemas de configuração. Os certificados enviados em YubiKeys de SSL.com podem ser usados ​​sem instalação adicional além de instalar o Minidriver de cartão inteligente YubiKey e conectar o token ao seu computador. Certificados solicitados via atestado remoto deve ser baixado e instalado no dispositivo que contém a chave privada (por exemplo, YubiKey FIPS ou outro hardware compatível), não no armazenamento de certificados do seu computador.
Se você está planejando assinar drivers do Windows 10 com um certificado de assinatura de código EV, você precisará cadastre-se com o Programa de Desenvolvedor de Hardware do Windows.
Para obter instruções sobre como usar seu certificado de assinatura de código OV / IV ou EV com Java, consulte nosso Guia de assinatura de código Java.

Assinando um executável com o SignTool

Instale Windows SDK e SignTool

O SignTool está incluído no SDK do Windows 10. Após a instalação, o SignTool estará localizado em:

C: \ Arquivos de programas (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe

Início Powershell

Iniciar um Powershell janela de comando procurando por "Powershell" no Início menu e clicando no aplicativo da área de trabalho.

O Powershell é uma interface de linha de comando para os principais serviços do Windows. Você pode usá-lo para executar SignTool e assinar seu código.

Para EV código assinatura, anexe seu token USB ao seu computador (se ainda não o fez). Se estiver usando eSigner, instale Adaptador de chave de nuvem eSigner

Lembre-se de que a chave privada existe apenas no token USB enviado a você e que o token deve ser anexado ao computador que está sendo usado para assinar o aplicativo. Esta etapa deve ser ignorada se você estiver usando um certificado de assinatura de código OV.

Placa Executável

Você pode assinar um executável emitindo o seguinte comando na janela do Powershell. Se estiver usando a assinatura em nuvem eSigner com signtool.exe, certifique-se de instalar Assinatura eletrônica CKA

. \ signtool.exe sign / fd sha256 / a "C: \ path \ to \ MyExecutable.exe"
  • A /fd opção seleciona o algoritmo de resumo a ser usado ao assinar. Versões do Windows 10 SDK, HLK, WDK e ADK 20236 e acima exigem que essa opção seja definida ao assinar. SHA256 é recomendado em vez de SHA1 para segurança.
  • A /a A opção instrui o SignTool a encontrar automaticamente um certificado de assinatura de código apropriado para o seu executável.
  • Se você estiver usando um certificado de assinatura de código EV, será solicitado o PIN do token USB. Se precisar de ajuda para encontrar seu PIN, consulte este tutorial.Entrar no pino
Nota: Se estiver assinando arquivos de código que serão incluídos em um instalador (como um arquivo MSI do Windows), você precisará assinar esses arquivos antes de criar o instalador e, em seguida, assinar o próprio arquivo do instalador.

Selecionando um Certificado de Assinatura

Especifique o nome do assunto

Se você tiver mais de um tokens ou certificados USB de assinatura de código instalados, poderá especifique o certificado você deseja usar incluindo sua Nome do assunto via /n opção.

Você pode encontrar o nome do assunto do seu certificado EV CS usando a ferramenta de gerenciamento de certificados da Microsoft certificado. Abra a ferramenta no menu Iniciar e procure seu certificado EV CS na pasta “Pessoal”, em “Certificados”, conforme mostrado na imagem abaixo. O nome do assunto é o campo “Emitido para” em certmgr.

Na imagem acima, o nome do assunto do certificado é example. Você pode especificar esse valor no SignTool com o seguinte comando.

. \ signtool.exe sign / fd sha256 / n "exemplo" "C: \ caminho \ para \ MeuExecutável.exe"

Especifique SHA1 Hash

Se você tiver vários certificados com o mesmo nome de assunto, também poderá usar o hash SHA1 (ou “impressão digital”) de um certificado para selecioná-lo para assinatura. Substituir THUMBPRINT no comando abaixo com o hash SHA1 real do seu certificado. Você pode encontrar esse valor visualizando os detalhes do certificado em certmgr e procurando pelo Thumbprint (certifique-se de remover todos os caracteres de espaço da impressão digital antes de usá-lo em seu comando).

. \ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C: \ path \ to \ MyExecutable.exe"

Use um arquivo PKCS # 12 / PFX

Se você tiver um certificado de assinatura de código e uma chave privada em um arquivo PKCS # 12 (também conhecido como arquivo PFX ou P12), poderá especificar o arquivo e sua senha na linha de comando:

. \ signtool.exe sign / fd sha256 / f "C: \ path \ to \ MyCertificate.pfx" / p senha "C: \ path \ to \ MyExecutable.exe"

Registro de data e hora

O registro de data e hora em seu código permitirá que ele seja confiável após a expiração do certificado de assinatura de código. Se você quiser adicionar um timestamp no arquivo binário assinado, você pode fazer isso usando SignTool's /tr opção, que deve ser seguida pela definição do algoritmo de resumo do carimbo de data / hora com /td. O comando no snippet abaixo inclui um carimbo de data / hora de SSL.comserviço de carimbo de data / hora do ao assinar um executável.

. \ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C: \ path \ to \ MyExecutable.exe"
Nota: Certifique-se de usar SignTool's /tr opção (especifique o URL do servidor de carimbo de data / hora RFC 3161), não /t (URL do servidor de carimbo de hora), que é incompatível com o servidor de carimbo de data / hora SSL.com
Nota: A /td opção devo a seguir /tr opção. Se o algoritmo de compilação de registro de data e hora for especificado antes do servidor de registro de data e hora, o algoritmo SHA-1 padrão será usado. Versões do Windows 10 SDK, HLK, WDK e ADK 20236 e acima requer o uso de /tr ao registrar o tempo. SHA256 é recomendado em vez de SHA1 para segurança.
Nota: Por padrão, SSL.com oferece suporte a registros de data e hora de chaves ECDSA.

Se você encontrar este erro: The timestamp certificate does not meet a minimum public key length requirement, você deve entrar em contato com o fornecedor do software para permitir registros de data e hora das chaves ECDSA.

Se não houver como seu fornecedor de software permitir o uso do endpoint normal, você poderá usar esse endpoint legado http://ts.ssl.com/legacy para obter um registro de data e hora de uma unidade de registro de data e hora RSA.

Outras opções

Outras opções importantes do SignTool são:

  • /d: Adicione uma descrição do código assinado. Por exemplo, /d "test code".
  • /du: Adicione um URL com uma descrição expandida do código assinado. Por exemplo, /du https://your_website.tld/project/description.

Usando todas as opções acima (mas omitindo /a, /sha1ou /f porque estamos especificando o nome do assunto do certificado com /n, nossa linha de comando se parece com:

signtool.exe sign / n "exemplo" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "código de teste" / du https: //your_website.tld/project/description "C: \ path \ to \ MyExecutable.exe "

Verificar assinatura

Use este comando para verificar o seu código assinado (observe que o /pa opção deve estar presente no comando):

. \ signtool.exe verificar / pa "C: \ caminho \ para \ MeuExecutável.exe"

Se o seu arquivo foi assinado com sucesso, você verá uma saída como esta:

Arquivo: C: \ path \ to \ MyExecutable.exe Index Algorithm Timestamp ======================================= ===== 0 sha256 RFC3161 Verificado com sucesso: C: \ path \ to \ MyExecutable.exe

Você também pode verificar se um arquivo foi assinado clicando com o botão direito em seu ícone e selecionando Propriedades no menu, selecionando o Assinaturas digitais aba. Visualize os detalhes sobre uma assinatura selecionando-a e clicando no Adicionar ao carrinho botão.

Assinaturas digitais

Aqui podemos ver que o arquivo contém uma assinatura digital válida, criada pela SSL Corp em 28 de junho de 2020.

Detalhes de assinatura digital

Assinando um executável com SSL Manager

Se você preferir uma abordagem mais baseada em gráficos, poderá usar SSL.como software interno da empresa, SSL Manager, para assinar seus arquivos. Muitos clientes preferem usar SSL Manager porque oferece o benefício adicional de ter acesso fácil a todos os seus certificados em uma interface unificada. Para obter instruções sobre como baixar e instalar SSL Manager, consulte a nossa Guia de instalação.

Para assinar um executável, comece selecionando Assinatura de código> Pacote de código de assinatura e registro de data e hora da SSL Managermenu de.

Pacote de código de assinatura e data e hora

No formulário de assinatura de código, você pode selecionar o executável e o certificado de assinatura de código (de um arquivo ou de um armazenamento de certificados) e um dos servidores de carimbo de data / hora disponíveis. Quando terminar, clique no ícone Placa botão para assinar seu código. Se você estiver carregando um certificado de um arquivo PFX, terá que inserir a senha do arquivo. Se você estiver usando um certificado de assinatura de código EV, será solicitado o PIN do token USB.

Além da assinatura de código, SSL Manager oferece muitos recursos poderosos. Para obter mais detalhes, consulte SSL Managerdocumentação de, especialmente o Menu Assinatura de código.

Obrigado por escolher SSL.com! Se você tiver alguma dúvida, entre em contato conosco por e-mail em Support@SSL.com, ligar 1-877-SSL-SECUREou clique no link de bate-papo no canto inferior direito desta página.

Inscreva-se no boletim informativo de SSL.com

Não perca novos artigos e atualizações de SSL.com

Mantenha-se informado e seguro

SSL.com é líder global em segurança cibernética, PKI e certificados digitais. Inscreva-se para receber as últimas notícias do setor, dicas e anúncios de produtos da SSL.com.

Adoraríamos receber seu feedback

Responda à nossa pesquisa e deixe-nos saber sua opinião sobre sua compra recente.