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 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.
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"
/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 Adicionar ao carrinho 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. 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.