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.
Assinando um executável com Yubikey
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 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"
- O ESB (
/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. - O ESB (
/a
A opção instrui o SignTool a encontrar automaticamente um certificado de assinatura de código apropriado para o seu executável. - Será solicitado o PIN do seu token USB. Se precisar de ajuda para encontrar seu PIN, consulte este tutorial.
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 usando a ferramenta de gerenciamento de certificados da Microsoft certificado. Abra a ferramenta no menu Iniciar e procure o seu certificado na pasta “Pessoal”, em “Certificados”, conforme 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"
/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/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.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
, /sha1
ou /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 Detalhes botão.
Aqui podemos ver que o arquivo contém uma assinatura digital válida, criada pela SSL Corp em 28 de junho de 2020.
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.
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. Será solicitado o PIN do seu 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.
Assinatura de código com um token USB Thales SafeNet (Gemalto)
Esta seção demonstra como assinar código usando o certificado de assinatura de código SSL.com, o token USB Thales SafeNet (Gemalto) e o Safenet Authentication Client.
O token Thales SafeNet pode armazenar todos os tipos de certificados de assinatura de código SSL.com e suas chaves privadas. Isso inclui certificados de assinatura de código de identidade pessoal, certificados de assinatura de código de validação da organização e certificados de assinatura de código de validação estendida.
SafeNet Authentication Client é uma solução de middleware que lida com o abrangente portfólio SafeNet de autenticadores baseados em certificados da Thales. Isso inclui eTokens, cartões inteligentes SafeNet IDPrime, SafeNet IDPrime Virtual e cartões combinados PKI/Dispositivos FIDO.
Para obter instruções sobre como alterar sua senha de assinatura de código para tokens Thales SafeNet (Gemalto) ou recuperar o acesso a um token bloqueado, consulte este artigo do SSL.com: Como alterar sua senha do Thales SafeNet/Gemalto Token
Requisitos
- Kit de desenvolvimento do Windows instalado no seu computador
- SafeNet Authentication Client instalado no seu computador. Para instruções, consulte este guia SSL.com: Download do cliente de autenticação SafeNet para certificados de assinatura de código
- Um token Thales SafeNet contendo um certificado de assinatura de código SSL.com pré-instalado. O token Thales SafeNet deve ser ativado seguindo estas etapas:
- Localize o número de série do seu token Thales. Esta é uma série de letras e números impressas na superfície do seu token.
- Faça login em sua conta SSL.com.
- Clique na Encomendas guia, seguido pelo download link do seu pedido de certificado para exibir seus detalhes. No tokens físicos seção, ative seu token Thales colocando seu número de série no campo atribuído. Após a ativação do seu token Thales, o tokens físicos seção exibirá seu PIN de ativação e PIN de administrador. O PIN de ativação também é conhecido como o Senha do token e você será solicitado a inserir isso ao assinar seu arquivo. O PIN de administrador também é conhecido como o PUK – isso é necessário ao definir uma nova senha de token em um token bloqueado.
Etapas para assinar código com um token Thales SafeNet
- Ligue o seu Token Thales SafeNet para o seu computador.
- Abra Cliente de autenticação Safenet.
- Configure o comando para assinar seu código:
signtool assinar /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PATH_OF_FILE_TO_BE_SIGNED"
Legenda:
/fd sha256 seleciona o algoritmo de resumo a ser usado ao assinar.
/ tr http://ts.ssl.com especifica o endereço do servidor de carimbo de data/hora
/td sha256 especifica o algoritmo de resumo do carimbo de data/hora
/a instrui o SignTool a encontrar automaticamente um certificado de assinatura de código apropriado para o seu arquivo.
caminho de arquivo assinável: O caminho do seu arquivo deve estar entre aspas duplas. Tome nota para incluir o nome do seu arquivo assinável no caminho. Exemplo: /arquivo de teste.dll
Note: Alguns usuários podem enfrentar este erro com o comando sign: 'Signtool' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote. A solução para este erro é remover o texto ferramenta de sinalização do comando e substitua-o pelo caminho para signtool.exe. O caminho deve ser colocado entre aspas duplas.
“C:\Arquivos de programas (x86)\Windows Kits\10\folder\folder\x86\signtool.exe” sinal /tr http://ts.ssl.com/ /td sha256 /fd sha256 /a "C:\ Usuários\Admin\Documentos\arquivos de teste\arquivo de teste.dll"
- Execute Prompt de comando como administrador e coloque o comando assinar. Depois, pressione Entrar.
- Você verá a mensagem Concluído a adição de loja adicional. Um pouco depois, você será solicitado a colocar seu Senha do token. Como afirmado no Requisitos seção acima, a senha do token é igual à PIN de ativação e isso pode ser visualizado na página de pedido de certificado SSL.com. Clique no OK botão para finalizar a assinatura do código.
- Sucesso! Seu arquivo agora está assinado. O prompt de comando irá notificá-lo sobre a assinatura bem-sucedida.
Opções para assinar código
1. Especifique o nome do assunto do certificado
Se você possuir vários tokens ou certificados USB de assinatura de código, poderá selecionar qual certificado específico usar incorporando seu nome de assunto por meio da opção /n.
Você pode visualizar o nome do assunto do seu certificado clicando no ícone de engrenagem no SafeNet Authentication Client para permitir uma visualização avançada. Em seguida, clique na seta para Certificados de usuário para exibir todos os certificados instalados no token. Copie o nome do certificado que você deseja usar.
O comando de sinal usando o /n
opção se parece com o seguinte. O Nome do Assunto do seu certificado deve ser colocado entre aspas duplas.
Sinal “PATH OF SIGNTOOL.EXE” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /n "NOME DO ASSUNTO DO CERTIFICADO" “PATH_OF_FILE_TO_BE_SIGNED”
2. Especifique a impressão digital do certificado
Se você possuir vários certificados com nomes de entidades idênticos, poderá distinguir e selecionar um para assinatura usando seu hash SHA1, comumente chamado de “impressão digital”. Para fazer isso, substitua IMPRESSÃO DIGITAL no comando a seguir com o hash SHA1 real do seu certificado.
Você pode visualizar o valor da impressão digital do seu certificado clicando no ícone de engrenagem no SafeNet Authentication Client para permitir uma visualização avançada. Em seguida, clique na seta para Certificados de usuário. Clique duas vezes no certificado que deseja usar. Clique no Detalhes aba. Por fim, role para baixo até o Impressão digital campo.
No comando de sinal, substitua o texto IMPRESSÃO DIGITAL com o valor real da impressão digital do seu certificado.
Sinal “PATH OF SIGNTOOL.EXE” /tr http://ts.ssl.com/ /td sha256 /fd sha256 /SHA1 THUMBPRINT “PATH_OF_FILE_TO_BE_SIGNED”
Verifique a assinatura
Você pode verificar a assinatura digital aplicada clicando com o botão direito no arquivo assinado para ver suas propriedades.
- Clique na Assinaturas digitais aba. Passe o mouse até o Lista de assinaturas caixa e clique no nome exibido do seu certificado para destacá-lo. Clique no Detalhes caixa para prosseguir.
- Você poderá ver o nome do certificado usado para assinar o arquivo, bem como a data e hora em que foi assinado e o carimbo de data/hora.