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.
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 combatch_hash_sign
comando.batch_sign_hash
: Sinal de hash (s) pré-calculado comhash
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
-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.
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.
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.
lote_sign
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.