Guia de Comando eSigner CodeSignTool

Ferramenta CodeSign é um utilitário de linha de comando Java multiplataforma, seguro e orientado para a privacidade para assinar remotamente objetos de código Microsoft Authenticode e Java com Assinatura eletrônica Certificados de assinatura de código EV. Os hashes dos arquivos são enviados ao SSL.com para assinatura, para que o próprio código não seja enviado. Isso é ideal quando arquivos confidenciais precisam ser assinados, mas não devem ser enviados pela rede para assinatura. O CodeSignTool também é ideal para processos em lote automatizados para assinaturas de alto volume ou integração em fluxos de trabalho de pipeline de CI/CD existentes.

Se você gostaria de experimentar CodeSignTool com uma conta demo e certificado, por favor leia Credenciais e certificados de demonstração do eSigner para credenciais e informações de configuração.

Para conhecer todos os tipos de arquivos que o CodeSignTool é capaz de assinar, consulte este artigo: Tipos de arquivo suportados pelo eSigner

Observação: na versão v1.3.2 do CodeSignTool, a assinatura do arquivo mscab é realizada usando processamento na memória em vez de usar um diretório tmp.

Para obter instruções sobre como automatize a assinatura de código EV usando signtool.exe ou certutil.exe por favor revise este tutorial.

Se você deseja usar o esigner para assinar documentos, por favor consulte este guia DocSignTool.

Instalação CodeSignTool

Para instalar a versão atual do CodeSignTool, basta baixar e descompactar o arquivo correto para o seu sistema operacional:

Observe que o download do Windows inclui Java Runtime, mas a versão Linux / macOS requer que o Java Runtime esteja instalado em seu computador. A versão do Windows do comando é um arquivo em lote (CodeSignTool.bat) e a versão Linux / macOS é um script de shell (CodeSignTool.sh).

Visão geral do uso do CodeSignTool

Uso: CodeSignTool [-hV] [COMMAND] [PARAMETERS]

opções:

  • -h, --help: Exibe a mensagem de ajuda e sai.
  • -V, --version: Exibe informações sobre a versão e sai.

comandos:

  • get_credential_ids: Produz a lista de IDs de credenciais do eSigner associados a um determinado usuário.
  • credential_info: Chave de saída e informações de certificado relacionadas a um ID de credencial.
  • sign: Objeto de código de assinatura e carimbo de data / hora.
  • batch_sign: Assine e registre a data e hora de vários objetos de código com uma OTP.
  • hash: Pré-computar hash (s) para uso posterior com batch_hash_sign comando.
  • batch_sign_hash: Sinal de hash (s) pré-calculado com hash comando.

parâmetros:

  • -access_token=<TOKEN>: OAuth token de acesso.
  • -credential_id=<CREDENTIAL_ID>: ID de credencial para assinar o certificado.
  • -input_dir_path=<PATH>: Diretório de entrada para objetos de código a serem assinados, ter hashes computados ou escolher arquivos não assinados e hashes correspondentes para assinatura.
  • -input_file_path=<PATH>: Caminho do objeto de código a ser assinado.
  • -otp=<OTP>: Valor OAuth OTP do aplicativo de autenticação.
  • -output_dir_path=<PATH>: Diretório onde os objetos de código assinado serão gravados.
  • -password=<PASSWORD>: Senha da conta SSL.com.
  • -program_name=<PROGRAM_NAME>: Nome do programa (apenas para instaladores MSI).
  • -totp_secret=<TOTP_SECRET>: OAuth Segredo TOTP
  • -username=<USERNAME>: Nome de usuário da conta SSL.com
  • -override="true": Substitui o arquivo assinado
Se sua senha incluir caracteres especiais, coloque-a entre aspas (por exemplo -password="P!@^^ssword12").

Comandos CodeSignTool

get_credential_ids

Produza a lista de IDs de credenciais do eSigner associados a um determinado usuário. Parâmetros -username e -password é requerido.

Uso: CodeSignTool [-hV] get_credential_ids -username=<USERNAME> -password=<PASSWORD>

Exemplo:

CodeSignTool get_credential_ids -username=john.doe@example.com -password="P0z9@lxo41"
Credential ID(s):
- fe537ace-e132-52a9-c2e7-egcd2ac3f1e6

entrando CodeSignTool get_credential_ids sem os parâmetros necessários exibirá informações de uso para o comando.

credencial_info

Chave de saída e informações de certificado relacionadas a um ID de credencial. Parâmetros -credential_id, -username e -password é requerido.

Uso: CodeSignTool [-hV] credential_info -credential_id=<CREDENTIAL_ID> -username=<USERNAME> -password=<PASSWORD>

Exemplo:

CodeSignTool credential_info -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password = "P0z9 @ lxo41" Informação do Assunto do Certificado EVCS: - Assunto DN: OID.1.3.6.1.4.1.311.60.2.1.3 .1.3.6.1.4.1.311.60.2.1.2 = EUA, OID.2.5.4.15 = Nevada, OID.20081614243 = Organização privada, CN = SSL Corp, SERIALNUMBER = NV26, O = SSL Corp, L = Houston, ST = Texas, C = US - Expiração do certificado: Seg 21 de fevereiro 21:37:2024 EST 3 - DN do emissor: CN = SSL.com Intermediário de assinatura de código EV CA RSA RXNUMX, O = SSL Corp, L = Houston, ST = Texas , C = US

entrando CodeSignTool credential_info sem os parâmetros necessários exibirá informações de uso para o comando.

scan_code

Habilita a verificação de malware pré-assinado. Isso verifica seu arquivo em busca de qualquer malware possível para evitar comprometimento de código e impede a assinatura de código se malware for detectado.

Uso: CodeSignTool scan_code [-hV] -credential_id=<credentialId> -input_file_path=<inputFilePath> -password=<password> [-program_name=<programName>] -username=<username>

Para obter informações mais detalhadas sobre os benefícios de segurança do serviço Malware Scan do SSL.com, você pode visitar nosso página dedicada.

assinar

Objeto de código de assinatura e carimbo de data / hora. Parâmetros -username, -password e -input_file_path é requerido. -credential_id é necessário apenas para usuários com mais de um certificado de assinatura de código eSigner. -output_dir_path, -program_name e -totp_secret são opcionais.

Uso: CodeSignTool sign [-hV] [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_file_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

Parâmetros opcionais:

  • If -credential_id é omitido e o usuário tem apenas um certificado de assinatura de código eSigner, o CodeSignTool usará como padrão. Se o usuário tiver mais de um certificado de assinatura de código, este parâmetro é obrigatório.
  • If -output_dir_path é omitido, o arquivo especificado em -input_file_path será substituído pelo arquivo assinado. CodeSignTool solicitará ao usuário antes de sobrescrever o arquivo.
  • If -program_name estiver presente ao assinar um instalador MSI, o valor será exibido na caixa de diálogo de confirmação como o nome do programa.
  • If -totp_secret estiver presente, CodeSignTool calculará uma OTP baseada em tempo para assinatura, permitindo o uso automatizado da ferramenta. Se este parâmetro não estiver presente, o usuário será solicitado a inserir manualmente o OTP.
Para obter informações sobre como registrar um certificado de assinatura de código EV no eSigner e configurar a autenticação de dois fatores, leia Assinatura de código EV remoto com eSigner. Para obter informações sobre o valor secreto do TOTP, consulte Automatize a assinatura de código EV eSigner.

Exemplos:

Entrada manual de OTP:

CodeSignTool sign -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password = "P0z9 @ lxo41" -output_dir_path = assinado -input_file_path = Test.exe Digite o OTP - Continue : 884646 Código assinado com sucesso: C: \ Users \ John Doe \ Desktop \ CodeSignTool-v1.0-windows \ signed \ test.exe

Geração OTP automatizada:

CodeSignTool sign -credential_id=fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -username=john.doe@example.com -password="P0z9@lxo41" -totp_secret=ii5gVvZ9G+WkxB3FauAnoL/z14AXSMistcE0jZMWWNSjQDlql2kt2D6Z+l8= -output_dir_path=signed -input_file_path=test.exe
Code signed successfully: C:\Users\John Doe\Desktop\CodeSignTool-v1.0-windows\signed\test.exe

entrando CodeSignTool sign sem os parâmetros necessários exibirá informações de uso para o comando.

Se você receber a mensagem de erro, Error: invalid otp ao tentar assinar um arquivo, isso pode ser causado por um ou mais destes problemas:

  • O código QR que você digitalizou em seu aplicativo de autenticação não corresponde ao nome de usuário, senha e / ou ID de credencial do seu comando. Isso pode acontecer se:
    • Você tem várias contas configuradas para 2FA em seu dispositivo e escolheu a errada.
    • Você está tentando usar suas credenciais de login para um certificado compartilhado, mas digitalizou um código QR compartilhado por um colega de equipe em sua conta.
  • O OTP que você inseriu já expirou.
  • Seu comando inclui um segredo TOTP inválido.
Alguns usuários do eSigner relataram problemas com assinaturas inválidas ao assinar instaladores MSI desenvolvidos com o Microsoft Visual Studio. Como alternativa, sugerimos construir seus arquivos MSI com Conjunto de ferramentas WiX. Para a conveniência dos usuários do Visual Studio, um Extensão VS do WiX Toolset está disponível.

lote_sign

Observação: 100 é o número máximo de arquivos de código que podem ser assinados por lote.

Assine e registre a data e hora de até 100 arquivos de código com um OTP. Parâmetros -username, -password e -input_dir_path é requerido. -credential_id é necessário apenas para usuários com mais de um certificado de assinatura de código eSigner. -output_dir_path, -program_name e -totp_secret são opcionais.

Uso: CodeSignTool [-hV] batch_sign [-credential_id=<CREDENTIAL_ID>] -username=<USERNAME> -password=<PASSWORD> -input_dir_path=<PATH> [-output_dir_path=<PATH>] [-program_name=<PROGRAM_NAME>] [-totp_secret=<TOTP_SECRET>]

Se um usuário quiser realizar a assinatura em lote com verificação de malware, cada objeto de código no lote deverá primeiro ser verificado com o scan_code comando e depois, o batch_sign comando pode ser executado.

Parâmetros opcionais:

  • If -credential_id é omitido e o usuário tem apenas um certificado de assinatura de código eSigner, o CodeSignTool usará como padrão. Se o usuário tiver mais de um certificado de assinatura de código, este parâmetro é obrigatório.
  • If -output_dir_path é omitido, os arquivos especificados em -input_dir_path será sobrescrito com os arquivos assinados. CodeSignTool solicitará ao usuário antes de sobrescrever o arquivo.
  • If -program_name estiver presente ao assinar um instalador MSI, o valor será exibido na caixa de diálogo de confirmação como o nome do programa.
  • If -totp_secret estiver presente, CodeSignTool calculará uma OTP baseada em tempo para assinatura, permitindo o uso automatizado da ferramenta. Se este parâmetro não estiver presente, o usuário será solicitado a inserir manualmente o OTP.

Exemplo:

CodeSignTool batch_sign -username=john.doe@example.com -password = "P0z9 @ lxo41" -credential_id = fe537ace-e132-52a9-c2e7-egcd2ac3f1e6 -input_dir_path = entrada -output_dir_path455145 = EnterXNUMX XNUMX Comando de sinal em lote executado com sucesso. Diretório de saída para arquivos assinados: saída

entrando CodeSignTool batch_sign sem os parâmetros necessários exibirá informações de uso para o comando.

hash

Pré-computar hash (s) para uso posterior com batch_hash_sign comando. Parâmetro -input_dir_path É necessário. -program_name é opcional

Uso: CodeSignTool [-hV] hash -input_dir_path=<PATH> [-program_name=<PROGRAM_NAME>]

Parâmetros opcionais:

  • If -program_name estiver presente ao assinar um instalador MSI, o valor será exibido na caixa de diálogo de confirmação como o nome do programa.

Exemplo:

CodeSignTool hash -input_dir_path = input Comando Hash executado com sucesso. Arquivos hash criados em: entrada

entrando CodeSignTool hash sem os parâmetros necessários exibirá informações de uso para o comando.

batch_sign_hash

Assinar hash (s) pré-computado (s) com hash comando. Parâmetros -access_token, input_dir_path, -otp e output_dir_path é requerido. -credential_id é necessário apenas para usuários com mais de um certificado de assinatura de código eSigner.

Uso: CodeSignTool [-hV] batch_sign_hash -access_token=<ACCESS_TOKEN> [-credential_id=<CREDENTIAL_ID>] -input_dir_path=<PATH> -output_dir_path=<PATH> -otp=<OTP>

Parâmetros opcionais:

  • If -credential_id é omitido e o usuário tem apenas um certificado de assinatura de código eSigner, o CodeSignTool usará como padrão. Se o usuário tiver mais de um certificado de assinatura de código, este parâmetro é obrigatório.

Exemplo:

CodeSignTool batch_sign_hash -access_token=eyJraWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0IiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJTU
0wuY29tIEF1dGhlbnRpY2F0aW9uIFNlcnZpY2UiLCJleHAiOjE2MTQ4OTcxNDIsImlhdCI6MTYxNDg5MzU0MiwianRpIjoiZmI2OTZlNDUtMTIzOS00ZGE4LW
I1MmYtODNkZDE2MTY3ZTM3IiwidXNlciI6eyJ1c2VyX2lkIjoxMzIyODU4LCJ1c2VyX2VtYWlsIjoiYWFyb24uZS5ydXNzZWxsQGdtYWlsLmNvbSIsInNzbF9
hY2NvdW50X2lkIjo0NzQzMDJ9LCJjbGllbnQiOnsiaWQiOiJmUE1yYUdlbXVMWGUtcG9JWUtLem1CMEYwYXlFczktUEpiN29lTWFlY2I0In19.fCKDs1igjsI
UDG2sUN_2OTb90Jw1nKNPHcD1MyEUR6sHCv_aJmcvcaFRne_eKLHzeQ9WtT5y3Fb2ppc50kMnjPG6JgX5gnFMptMn-ySsI277CtKbkSn3u-WSDSovn51jPm82
4wTeJmuXEzdv9clRjTwp6VoM9eqHCIaDAd3MP2xpMaa35cZbDaaAFKQ7jxWo9dUuTZY7DsKK0p1LloUEnmNxtNimQ3GDwkj_M600WB1zYrhDL9_3oZKaXcUx9
qzHcBCLzGgeaZ0xdpZtADxmXDUCcmkZi20yQ53bxqVL2w00sJ73efKB7JGeGWVehO-ZlGs3PUQwooox1JgEgcsA -credential_id=fe537ace-e132-52a9
-c2e7-egcd2ac3f1e6 -input_dir_path=input -output_dir_path=output -otp=142392
Batch sign hash command executed successfully. Output directory for signed files: output

entrando CodeSignTool batch_sign_hash sem os parâmetros necessários exibirá informações de uso para o comando.

Vídeo: Cloud EV Code Signing com eSigner e CodeSignTool

https://youtu.be/Br25mZIlKdU
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 apenas clique no link de bate-papo no canto inferior direito desta página. Você também pode encontrar respostas para muitas perguntas de suporte comuns em nosso Base de Conhecimento.
Twitter
Facebook
LinkedIn
Reddit
E-mail

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.