Configurar integrações de assinatura para usar a Assinatura Confiável

Atualmente, o Trusted Signing oferece suporte às seguintes integrações de assinatura:

  • SignTool
  • GitHub Actions
  • Tarefas do Azure DevOps
  • PowerShell para Authenticode
  • Azure PowerShell (política de CI do Controle de Aplicativos para Empresas)
  • SDK de Assinatura Confiável

Trabalhamos constantemente para dar suporte a mais integrações de assinatura. Atualizamos a lista de integração com suporte quando mais integrações estiverem disponíveis.

Este artigo explica como configurar cada integração de assinatura confiável com suporte.

Configurar o SignTool para usar a Assinatura Confiável

Essa seção explica como configurar o SignTool para usar com assinatura confiável.

Pré-requisitos

Para concluir as etapas deste artigo, você precisa de:

  • Uma conta de Assinatura Confiável, validação de identidade e perfil de certificado.
  • Uma atribuição individual ou em grupo da função de Signatário de Perfil de Certificado de Assinatura Confiável.

Resumo das etapas

  1. Baixe e instale SignTool.
  2. Baixe e instale o tempo de execução do .NET 8.
  3. Baixe e instale o pacote dlib de Assinatura Confiável.
  4. Crie um arquivo JSON para fornecer sua conta de Assinatura Confiável e um perfil de certificado.
  5. Invoque SignTool para assinar um arquivo.

Baixe e instale SignTool

A Assinatura Confiável requer o uso do SignTool para assinar arquivos no Windows, especificamente a versão do SignTool.exe que está no SDK do Windows 10 10.0.2261.755 ou posterior. Você pode instalar o SDK completo do Windows 10 por meio do Instalador do Visual Studio ou baixá-lo e instalá-lo separadamente.

Para baixar e instalar o SignTool:

  1. Baixe a versão mais recente do NuGet das Ferramentas de Build do SignTool e do Windows em Microsoft.Windows.SDK.BuildTools.

  2. A instalação da SignTool do SDK do Windows (versão mínima: 10.0.2261.755, a versão 20348 do SDK do Windows não é compatível com nossa dlib).

Outra opção é usar o arquivo de nuget.exe mais recente para baixar e extrair o pacote NuGet mais recente das Ferramentas de Build do SDK do Windows usando o PowerShell:

  1. Baixe nuget.exe executando o seguinte comando de download:

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. Baixe e extraia o pacote NuGet das Ferramentas de Build do SDK do Windows executando o seguinte comando de instalação:

    .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
    

Baixe e instale o tempo de execução do .NET 8.0

Os componentes usados pelo SignTool para interface com a Assinatura Confiável exigem a instalação do Runtime do .NET 8.0. Você precisa apenas do runtime principal do .NET 8.0. Instale o runtime de plataforma correto dependendo da versão do SignTool que você pretende executar. Ou você pode simplesmente instalar ambos

Por exemplo:

Baixar e instalar o pacote dlib de Assinatura Confiável

Para baixar e instalar o pacote dlib de Assinatura Confiável (um arquivo .zip):

  1. Baixe o pacote dlib de Assinatura Confiável.

  2. Extraia o conteúdo compactado do dlib de Assinatura Confiável e instale-o no nó de assinatura em sua escolha de diretório. O nó deve ser o nó em que você usará SignTool para assinar arquivos.

Outra opção é baixar o pacote dlib de Assinatura Confiável por meio do NuGet semelhante ao pacote NuGet das Ferramentas de Build do SDK do Windows:

.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x

Criar um arquivo JSON

Para assinar usando a Assinatura Confiável, você precisa fornecer os detalhes da sua conta de Assinatura Confiável e do perfil de certificado que foram criados como parte dos pré-requisitos. Você fornece essas informações em um arquivo JSON concluindo essas etapas:

  1. Crie um novo arquivo JSON (por exemplo, metadata.json).

  2. Adicione os valores específicos para sua conta de Assinatura Confiável e o perfil de certificado ao arquivo JSON. Para obter mais informações, consulte o arquivo de metadata.sample.json incluído no pacote dlib de Assinatura Confiável ou use o seguinte exemplo:

    {
      "Endpoint": "<Trusted Signing account endpoint>",
      "CodeSigningAccountName": "<Trusted Signing account name>",
      "CertificateProfileName": "<Certificate profile name>",
      "CorrelationId": "<Optional CorrelationId value>"
    }
    

    O valor do URI "Endpoint" deve ser um URI que se alinha à região em que você criou sua conta de Assinatura Confiável e o perfil de certificado ao configurar esses recursos. A tabela mostra regiões e suas URIs correspondentes.

    Region Campos de classe de região Valor do URI do ponto de extremidade
    Leste dos EUA EastUS https://eus.codesigning.azure.net
    Oeste dos EUA3 [1] WestUS3 https://wus3.codesigning.azure.net
    Centro-Oeste dos EUA WestCentralUS https://wcus.codesigning.azure.net
    Oeste dos EUA 2 WestUS2 https://wus2.codesigning.azure.net
    Norte da Europa NorthEurope https://neu.codesigning.azure.net
    Europa Ocidental WestEurope https://weu.codesigning.azure.net

    1 O campo opcional "CorrelationId" é um valor de cadeia de caracteres opaco que você pode fornecer para correlacionar solicitações de sinal com seus próprios fluxos de trabalho, como identificadores de build ou nomes de máquina.

Usar SignTool para assinar um arquivo

Para invocar SignTool para assinar um arquivo:

  1. Anote onde as Ferramentas de Build do SDK, o Azure.CodeSigning.Dlib extraído e o arquivo metadata.json estão localizados (de seções anteriores).

  2. Substitua os espaços reservados no seguinte caminho pelos valores específicos que você anotou na etapa 1:

    & "<Path to SDK bin folder>\x64\signtool.exe" sign /v /debug /fd SHA256 /tr "http://timestamp.acs.microsoft.com" /td SHA256 /dlib "<Path to Trusted Signing dlib bin folder>\x64\Azure.CodeSigning.Dlib.dll" /dmdf "<Path to metadata file>\metadata.json" <File to sign> 
    
  • O x86 e a versão x64 do SignTool estão incluídos no SDK do Windows. Lembre-se de referenciar a versão correspondente do Azure.CodeSigning.Dlib.dll. O exemplo anterior é para a versão x64 do SignTool.
  • Certifique-se de usar a versão recomendada do SDK do Windows nas dependências listadas no início deste artigo ou se o arquivo dlib não funcionará.

Os certificados de Assinatura Confiável têm uma validade de três dias, portanto, o carimbo de data/hora é fundamental para a validação bem-sucedida contínua de uma assinatura além desse período de validade de três dias. A Trusted Signing recomenda o uso da Microsoft Public RSA Time Stamping Authority da Trusted Signing: http://timestamp.acs.microsoft.com/.

Use outras integrações de assinatura com Trusted Signing

Você também pode usar as seguintes ferramentas ou plataformas para configurar integrações de assinatura com a Assinatura Confiável.

  • GitHub Actions: para saber como usar uma ação do GitHub para Assinatura Confiável, consulte Assinatura Confiável – Ações no GitHub Marketplace. Conclua as instruções para configurar e usar uma ação do GitHub.

  • Tarefa do Azure DevOps: para usar a tarefa DevOps do Azure de Assinatura Confiável, consulte Assinatura Confiável no Visual Studio Marketplace. Conclua as instruções para a instalação.

  • PowerShell para Authenticode: para usar o PowerShell para Assinatura Confiável, consulte Assinatura Confiável na Galeria do PowerShell para instalar o módulo do PowerShell.

  • Azure PowerShell – Política de CI do Controle de Aplicativos para Empresas: para usar a Assinatura Confiável para assinatura de política de CI (integridade de código), siga as instruções em Assinar uma nova política de CI e consulte Módulo do PowerShell do Az.CodeSigning.

  • SDK de Assinatura Confiável: para criar sua própria integração de assinatura, você pode usar nosso SDK de Assinatura Confiável de software livre. Observe que essa versão do SDK aparece como não listada. Ele ainda está sendo suportado e terá suporte quando um SDK mais recente for lançado.