Principais lições
- Um certificado de assinatura de código permite assinar criptograficamente um software, para que usuários e sistemas operacionais possam verificar quem o publicou e confirmar que ele não foi adulterado desde o lançamento.
- A SSL.com emite chaves privadas de assinatura de código apenas para hardware validado pelo FIPS (tokens USB YubiKey ou Thales SafeNet) ou para serviços baseados em nuvem. Assinatura eletrônica serviço — as chaves privadas nunca podem ser exportadas como um arquivo para download .pfx arquivo.
- A assinatura é realizada com o software da Microsoft. Ferramenta de sinalizaçãoou uma ferramenta de assinatura eletrônica (Assinatura eletrônica CKA, eSigner CodeSignToolou a API eSigner CSC), dependendo se o seu certificado reside em um token ou na nuvem.
- A partir de 1º de março de 2026, os Requisitos Básicos do Fórum CA/Browser limitam a validade dos certificados de assinatura de código publicamente confiáveis a 458 dias; o prazo adquirido não é afetado, mas certificados individuais dentro desse prazo podem precisar de reemissão periódica.
- Sempre registre a data e a hora em suas assinaturas para que elas permaneçam válidas mesmo após o vencimento do certificado.
Pré-requisitos comuns a todos os métodos de assinatura
Antes de começar, independentemente do método de entrega de certificado que você estiver usando, certifique-se de ter:
- Windows SDK instalado, Que inclui Ferramenta de sinalização (O SignTool é fornecido com o SDK do Windows 10/11 — não é necessário fazer nenhum download separado)
- O arquivo que você pretende assinar salvo localmente e acessível a partir da linha de comando.
- É necessário acesso de administrador na máquina de assinatura, pois algumas etapas de configuração e operações do SignTool exigem permissões elevadas.
A partir daqui, o processo de configuração se divide dependendo se o seu certificado está em um token de hardware ou se está cadastrado no eSigner.
Opção 1: Assinatura de código baseada em token
A SSL.com fornece certificados de assinatura de código em dois tokens de hardware compatíveis: Yubikey (Validado pelo FIPS) e Thales SafeNet (Gemalto)Este guia pressupõe que um certificado já esteja instalado em seu token.
A. Assinatura de código YubiKey
Requisitos de instalação e configuração
- Instale o SDK do Windows e o SignTool. O SignTool vem incluído no SDK do Windows 10/11 e geralmente é instalado em um caminho semelhante a C: \ Arquivos de programas (x86) \ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe.
- Baixe e instale o Minidriver de cartão inteligente YubiKeyDisponível na Yubico. Este driver é necessário para que o Windows reconheça o token FIPS.
- Localize o PIN da sua YubiKey. Você precisará inserir esse PIN sempre que fizer login. Ele pode ser visualizado na sua conta SSL.com.
Assinando seu primeiro arquivo
Com o token conectado e o minidriver instalado, abra o PowerShell ou o Prompt de Comando e execute:
.\signtool.exe sign /fd sha256 /a "C:\path\to\MyExecutable.exe"
Eis o que cada parte desse comando faz:
.\signtool.exeinvoca o SignTool. Dependendo da versão do seu SDK e de como o seu PATH está configurado, você pode precisar do caminho completo para signtool.exe.
/fd sha256Define o algoritmo de hash (digest) usado na assinatura. Essa opção é obrigatória no SDK do Windows 10, HLK, WDK e ADK versões 20236 e superiores, sendo o SHA256 recomendado em vez do SHA1 para maior segurança.
/aIndica ao SignTool para selecionar automaticamente um certificado de assinatura de código apropriado — útil quando existe apenas um certificado.
"C:\path\to\MyExecutable.exe"é o caminho completo para o arquivo que você está assinando.
Você será solicitado a inserir o PIN do seu YubiKey para autorizar a operação.
Adicionar um registro de data e hora (recomendado)
A marcação de tempo garante que sua assinatura permaneça válida mesmo após o certificado expirar, pois ela comprova que o código foi assinado enquanto o certificado ainda estava válido. /tr http://ts.ssl.com /td sha256 ao seu comando — observe que o servidor de carimbo de data/hora do SSL.com requer o /tr bandeira especificamente (não a mais antiga) /t bandeira), e /td deve vir depois de /tr ou o SignTool usará silenciosamente o algoritmo de carimbo de data/hora SHA-1, que é mais fraco.
B. Token USB Thales SafeNet (Gemalto)
Requisitos de instalação e configuração
- Instale o SDK do Windows e o SignTool. (como acima).
- Instale o cliente de autenticação SafeNet, o middleware que gerencia o hardware Thales SafeNet. Para obter o guia completo, com instruções detalhadas de download e instalação, consulte: Download do cliente de autenticação SafeNet para certificados de assinatura de código
- Ative seu token Thales SafeNet. Como a SSL.com pré-instala o certificado no token antes do envio, a ativação é feita através da sua conta SSL.com e não localmente:
- Localize o número de série impresso no token físico.
- Faça login na sua conta SSL.com e abra o Pedidos aba.
- Clique no link de download/detalhes do seu pedido de certificado e, em seguida, encontre o Fichas Físicas seção.
- Insira o número de série do token para ativá-lo. Isso revelará o seu PIN de ativação (também chamada de Senha do Token, inserida ao fazer login) e seu PIN de administrador (também chamado de PUK, usado apenas para redefinir um token bloqueado).
Assinando seu primeiro arquivo
- Conecte o token Thales SafeNet ao seu computador.
- Abra o cliente de autenticação SafeNet para que o token seja reconhecido.
- Execute o comando de assinatura:
signtool sign /tr http://ts.ssl.com /td sha256 /fd sha256 /a "PATH_OF_FILE_TO_BE_SIGNED"
/fd sha256— algoritmo de resumo usado para assinatura
/trhttp://ts.ssl.com— Endereço do servidor de carimbo de data/hora do SSL.com
/td sha256— algoritmo de resumo de carimbo de data/hora
/a— seleciona automaticamente um certificado apropriado
- O caminho do arquivo deve estar entre aspas duplas e incluir o próprio nome do arquivo, por exemplo:
"C:\Users\Admin\Documents\test file.dll".
Se o Windows informar que ferramenta de sinalização não é reconhecido como um comando, substitua ferramenta de sinalização no comando com o caminho completo entre aspas para signtool.exe (O caminho exato depende da versão do SDK instalada e da arquitetura do seu dispositivo).
- Executar prompt de comando como administrador e execute o comando.
- Quando solicitado, digite seu Senha do token (o PIN de ativação da sua página de pedidos da SSL.com).
- Uma mensagem de sucesso confirma que o arquivo foi assinado.
Se o seu token for bloqueado ou se precisar alterar a senha, não tente adivinhar o PIN repetidamente, pois isso pode bloquear o token.
Verificando sua assinatura (ambos os tipos de token)
Após assinar, confirme se a assinatura é válida:
.\signtool.exe verify /pa "C:\path\to\MyExecutable.exe"
Um resultado bem-sucedido exibe o algoritmo e o registro de data e hora utilizados. Você também pode clicar com o botão direito do mouse no arquivo assinado e abri-lo. Propriedades, e verifique o Assinaturas digitais Aba para confirmar visualmente a identidade do signatário e a data da assinatura.
Opção 2: Assinatura de código na nuvem SSL.com eSigner
Se gerenciar tokens físicos não for viável para sua equipe — especialmente para desenvolvedores distribuídos ou pipelines de compilação automatizados — Assinatura eletrônica Permite assinar código remotamente a partir de qualquer dispositivo conectado à internet, com a chave privada protegida no HSM em nuvem da SSL.com em vez de em hardware gerenciado por você. A assinatura de código do eSigner requer um Certificado de Assinatura de Código EV e suporta uma ampla variedade de tipos de arquivo, incluindo formatos Microsoft Authenticode (.exe, .dll, .sys, .ocxe outros), instaladores MSI, scripts do PowerShell, arquivos CAB e CAT, Java .jar arquivos e — quando assinados via eSigner CKA — também arquivos MSIX, MDB e ACCDE. O tamanho máximo do arquivo para assinatura de código é de 200 MB, independentemente de você usar o eSigner Express ou a API do eSigner.
Passo 1: Cadastre seu certificado no eSigner
Antes de poder assinar qualquer documento, seu pedido de certificado deve ser cadastrado no eSigner e vinculado à autenticação de dois fatores (2FA), que é obrigatória em todas as operações de assinatura. Você tem duas opções de cadastro:
Método de código QR (aplicativo autenticador)
- Faça login na sua conta SSL.com e clique em Pedidose abra a página de detalhes do seu pedido de certificado.
- Encontre o Inscrição de assinatura na nuvem eSigner selecione e selecione APLICATIVO OTP como seu método de segundo fator.
- Crie um PIN de 4 dígitos e guarde-o em local seguro — idealmente em um gerenciador de senhas, pois você precisará dele novamente para adicionar, remover ou substituir dispositivos de assinatura posteriormente.
- Clique criar OTP e emitir certificadoUm código QR aparece.
- Escaneie o código QR com um aplicativo autenticador, como o Google Authenticator ou o Authy. O aplicativo irá gerar senhas de uso único com validade de 30 segundos, que serão utilizadas em todas as suas futuras tentativas de login. Observe que o código QR é exibido apenas uma vez — ele não reaparecerá se você recarregar a página.
Método OTP SMS
- Faça login na sua conta SSL.com (selecione a equipe correta se você pertencer a mais de uma) e clique em Pedidose abra a página de detalhes do seu certificado.
- Debaixo Autenticação de segundo fator, selecione SMS OTP.
- De acordo com o relatório Verificação de número de celular Na seção, escolha o código do seu país, insira seu número de celular e clique em Enviar SMS com código OTP.
- Verifique se há um código de 6 dígitos no seu celular enviado pela “AuthMSG” (serviço de verificação da SSL.com), insira-o na página do pedido e clique em verificar telefone.
- Após a verificação, clique criar OTP e emitir certificado Para concluir a inscrição, a página da sua conta exibirá os quatro últimos dígitos do número de telefone verificado.
Passo 2: Escolha uma ferramenta de assinatura
Após a inscrição, escolha o método de assinatura que melhor se adapta ao seu fluxo de trabalho:
Adaptador de chave de nuvem eSigner (CKA)
Um aplicativo Windows que se comporta como um token USB virtual, carregando seu certificado baseado em nuvem no repositório de certificados do Windows para que ferramentas familiares como signtool.exe e certutil.exe Pode ser usado diretamente. Esta é a melhor opção para equipes que desejam continuar usando os fluxos de trabalho existentes baseados no SignTool sem hardware físico.
Requisitos: Certificado cadastrado no eSigner; eSigner CKA instalado e configurado para assinatura manual ou automatizada; SDK/SignTool do Windows instalado; arquivo a ser assinado salvo localmente; e, para assinatura manual, seu método de autenticação de dois fatores (2FA) pronto.
Um comando típico de assinatura CKA se parece com:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\signtool.exe" sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 CERTIFICATE_THUMBPRINT "SIGNABLE_FILE_PATH"
/fd sha256— algoritmo de hash
/trhttp://ts.ssl.come/td sha256— servidor de carimbo de data/hora e algoritmo de resumo
/sha1 CERTIFICATE_THUMBPRINT— identifica qual certificado usar do repositório de certificados por meio da impressão digital
- O caminho do arquivo assinável deve estar entre aspas.
Alguns tipos de arquivo exigem configuração adicional antes que o eSigner CKA possa assiná-los. O SSL.com mantém guias específicos para cada um deles:
- Assinatura de arquivos do Hardware Lab Kit (HLK) — usando o eSigner CKA com o HLKSigntool para preparar drivers de modo kernel para submissão à Microsoft
- Assinatura de macros VBA — assinar macros do Microsoft Visual Basic for Applications usadas para automatizar tarefas do Office
- Assinar arquivos .app — definindo e referenciando com segurança a identidade de uma solução completa de aplicativo da Microsoft
- Assinatura de arquivos .vsix — assinar pacotes de extensão e complementos do Visual Studio
O eSigner CKA também se integra a plataformas de CI/CD, incluindo CircleCI, GitHub Actions, GitLab CI, Travis CI e Azure Pipelines, para assinatura totalmente automatizada.
eSigner CodeSignTool
Uma ferramenta de linha de comando multiplataforma baseada em Java, criada para assinatura automatizada e em grande volume, incluindo pipelines de CI/CD. Em vez de transmitir o arquivo em si, o CodeSignTool envia apenas um hash criptográfico do arquivo para a SSL.com para assinatura, o que representa uma vantagem significativa caso seus arquivos contenham código sensível que não deva sair da sua rede.
Para automação de CI/CD, o CodeSignTool depende das seguintes variáveis de ambiente:
|
Variável |
Propósito |
|
NOME DE USUÁRIO |
Seu nome de usuário da conta SSL.com |
|
SENHA |
Senha da sua conta SSL.com |
|
CREDENTIAL_ID |
Identifica qual certificado de assinatura de código usar — necessário apenas se você tiver mais de um certificado eSigner; se omitido com um único certificado, esse será usado por padrão. |
|
TOTP_SECRET |
Segredo TOTP do OAuth usado para autenticação de dois fatores automatizada — veja o Automatize a assinatura de código EV eSigner guia |
|
AMBIENTE_NAME |
Definir para TESTE or REF |
E estas entradas:
- caminho_do_arquivo_de_entrada (obrigatório) — caminho para o arquivo a ser assinado
- saída_dir_caminho — diretório de destino para o arquivo assinado; se omitido, o arquivo original será sobrescrito com a versão assinada.
Guias de integração específicos para cada plataforma também estão disponíveis sob os seguintes títulos:
Perguntas frequentes
Posso exportar minha chave privada de assinatura de código para usar em outra máquina? Não. De acordo com os Requisitos Básicos do Fórum CA/Browser, as chaves privadas de assinatura de código da SSL.com não podem ser exportadas e nunca são disponibilizadas para download. .pfx Os arquivos. As chaves residem apenas em um YubiKey validado pelo FIPS, um token Thales SafeNet ou no HSM em nuvem eSigner da SSL.com.
Por que o período de validade do meu certificado diminuiu? A partir de 1º de março de 2026, os Requisitos Básicos do Fórum CA/Browser limitam a validade máxima dos certificados de assinatura de código publicamente confiáveis a 458 dias. Isso não reduz o valor do que você comprou — a SSL.com começou a aplicar o limite na emissão de novos certificados a partir de 27 de fevereiro de 2026, e os clientes ainda recebem o período completo que compraram, embora certificados individuais dentro desse período possam precisar ser reemitidos com mais frequência.
Preciso adicionar um carimbo de data/hora ao meu código assinado? Sim. Sem um carimbo de data/hora confiável, sua assinatura se torna inválida no momento em que o certificado expira. Com um carimbo de data/hora, a assinatura permanece confiável indefinidamente, pois comprova que o código foi assinado enquanto o certificado estava válido.
Qual a diferença entre assinatura baseada em token e assinatura eletrônica (eSigner)? A assinatura baseada em token (YubiKey ou Thales SafeNet) mantém sua chave privada em um hardware físico que precisa estar conectado à máquina de assinatura. O eSigner mantém a chave no HSM em nuvem da SSL.com e permite que você assine a partir de qualquer dispositivo conectado à internet usando autenticação de dois fatores (2FA) — mais adequado para equipes distribuídas ou automação de CI/CD.
Quais tipos de arquivo posso assinar com o eSigner? O eSigner é compatível com os formatos Microsoft Authenticode (EXE, DLL, SYS, OCX e tipos relacionados), instaladores MSI, scripts do PowerShell, arquivos CAB/CAT e arquivos JAR do Java, além de MSIX, MDB e ACCDE quando assinados pelo eSigner CKA. A assinatura de documentos (PDF, DOCX, PPTX, XLSX) é feita separadamente pelas ferramentas de assinatura de documentos do eSigner.
Conclusão
Seja para assinar um instalador ocasional a partir de uma única máquina de desenvolvedor ou para automatizar milhares de operações de assinatura em um pipeline de CI/CD, o objetivo fundamental é o mesmo: provar aos seus clientes, parceiros e sistemas operacionais que seu software é exatamente o que você afirma ser e que não foi alterado desde o lançamento. A assinatura baseada em tokens com YubiKey ou Thales SafeNet oferece controle direto e com suporte de hardware, ideal para equipes menores ou necessidades de assinatura esporádicas, enquanto o modelo baseado em nuvem do eSigner elimina completamente a necessidade de tokens físicos, permitindo que equipes distribuídas e sistemas de compilação automatizados assinem o código com segurança de qualquer lugar.
Uma vez que seu ambiente de assinatura esteja configurado corretamente, o processo diário se torna rotineiro: hash, assinatura, carimbo de data/hora, verificação. Acertar na primeira tentativa significa menos avisos de segurança do navegador e do sistema operacional, maior confiança na marca e um caminho mais tranquilo para a conformidade com os requisitos das Autoridades Certificadoras/Fóruns de Navegadores, à medida que continuam a evoluir. Se você tiver dúvidas específicas sobre sua configuração, a equipe de suporte da SSL.com está disponível por e-mail em [endereço de e-mail omitido]. Support@SSL.com, por telefone em 1-877-SSL-SECUREou através do chat ao vivo.