Guia de Integração do Azure DevOps Cloud Signing

Este é um guia sobre como o Azure DevOps pode ser integrado ao eSigner CodeSignTool para executar a assinatura de código automatizada.

CodeSignTool é um utilitário de linha de comando adequado para processos de assinatura de código em nuvem e se integra perfeitamente a várias plataformas de CI/CD. Ele faz parte do eSigner: nosso serviço de assinatura remota que oferece uma abordagem eficiente, segura e fácil de usar para assinatura de código.

SSL.com's EV Assinatura de código certificados ajudam a proteger seu código contra adulteração e comprometimento não autorizados com o mais alto nível de validação e estão disponíveis por apenas $ 249 por ano. Você também pode use seu certificado de assinatura de código EV em escala na nuvem usando eSigner.

PEÇA AGORA

variáveis ​​ambientais

  • NOME DE USUÁRIO: nome de usuário da conta SSL.com. (Requeridos)
  • SENHA: Senha da conta SSL.com (obrigatório)
  • CREDENTIAL_ID: ID da credencial para assinatura do certificado. Se credential_id for omitido e o usuário tiver 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, esse parâmetro é obrigatório. (Requeridos)
  • TOTP_SECRET: OAuth TOTP Secret. Você pode acessar informações detalhadas sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obrigatório)
  • AMBIENTE_NAME : Ambiente 'TEST' ou 'PROD'. (Requeridos)

 

entradas

  • caminho_do_arquivo_de_entrada: Caminho do objeto de código a ser assinado. (Requeridos)
  • saída_dir_caminho: Diretório onde o(s) objeto(s) de código assinado(s) será(ão) escrito(s). Se output_path for omitido, o arquivo especificado em -file_path será substituído pelo arquivo assinado.

Crie um projeto em visualstudio.com

Crie um novo arquivo .yml em seu editor de código

Definir acionadores de integração e variáveis ​​de ambiente

Acionadores de integração contínua

acionar:

  - Nenhum

 

Define variáveis ​​de ambiente globalmente. A propriedade de nível de trabalho substitui as variáveis ​​globais

variáveis:

  buildConfiguration: 'Release'

Agrupar trabalhos em etapas

Escreva as etapas para o estágio de construção. Todos os trabalhos em um estágio devem ser concluídos antes que o próximo estágio seja executado.

estágios:

  - fase: construir

    # Quando o fluxo de trabalho é executado, este é o nome registrado

    displayName: Construir

    empregos:

      - trabalho:

        piscina:

           Executar trabalho em VMs do Windows

          vmImage: 'windows-latest'

        passos:

           Instale o Dotnet 6.0.x

        – tarefa: UseDotNet@2

          displayName: 'Instalar SDK do .NET Core'

          entradas:

            versão: '6.0.x'

            performMultiLevelLookup: verdadeiro

            includePreviewVersions: verdadeiro

       

            Restaurar projeto Dotnet

        – tarefa: DotNetCoreCLI@2

          displayName: Restaurar

          entradas:

            comando: 'restaurar'

 

           Construir projeto dotnet com configuração de lançamento

        – tarefa: DotNetCoreCLI@2

          displayName: Construir

          entradas:

            comando: construir

            projetos: HelloWorld.csproj

            argumentos: '–configuration $(buildConfiguration)'

 

           Criar diretórios para artefatos assinados

        – powershell: New-Item -ItemType Directory -Path ./artifacts

          displayName: 'Diretórios criados para artefatos'

 

           Criar diretórios para pacotes assinados

        – powershell: New-Item -ItemType Directory -Path ./packages

          displayName: 'Diretórios criados para pacotes'

 

           Copiar artefato para ser o caminho de assinatura

        – powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll

          displayName: “Copiar artefatos construídos para o diretório de pacotes”

 

           Salvar artefato para usar o trabalho de assinatura

        – tarefa: PublishBuildArtifacts@1

          displayName: 'Salvar para ser assinado artefato para download'

          entradas:

            caminho para publicar: ./packages/HelloWorld.dll

            artefatoName: HelloWorld.dll

Escreva as etapas para o estágio Sign

– palco: Sinal

    # Quando o fluxo de trabalho é executado, este é o nome registrado

    displayName: Assinar

    empregos:

    - trabalho:

      piscina:

         Executar trabalho em VMs do Ubuntu

        vmImage: “Ubuntu mais recente”

      passos:

         Criar diretórios para artefatos assinados

      – script: mkdir -p ./artifacts && mkdir -p ./packages

        displayName: “Diretórios criados para artefatos e pacotes”

 

         Baixe o artefato a ser assinado

      – tarefa: DownloadPipelineArtifact@2

        entradas:

          artefato: HelloWorld.dll

          downloadPath: ./pacotes

 

         Instale o Docker 17.09.0-ce

      – tarefa: DockerInstaller@0

        displayName: Instalador do Docker

        entradas:

          dockerVersão: 17.09.0-ce

          Tipo de lançamento: estável

 

         Docker Pull CodeSigner Imagem do Docker

      – script: docker pull ghcr.io/sslcom/codesigner:latest

        displayName: 'Docker Pull CodeSigner Docker Image'

         Artefato de assinatura com a imagem do docker CodeSigner

      – script: docker run -i –rm –dns 8.8.8.8 –host de rede –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output

                -e NOME DE USUÁRIO=$(NOME DE USUÁRIO) -e SENHA=$(SENHA) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)

Se a senha tiver caracteres especiais, ela deverá estar entre aspas.

                -e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:último sinal -input_file_path=/codesign/examples/HelloWorld.dll

                -output_dir_path=/codesign/saída

        displayName: 'Assine artefato com a imagem do docker CodeSigner'

 

         Salvar artefato assinado para download

      – tarefa: PublishBuildArtifacts@1

        displayName: 'Salvar artefato assinado para download'

        entradas:

          caminho para publicar: ./artifacts/HelloWorld.dll

          artefatoName: HelloWorld.dll

Crie um novo arquivo .gitignore

Digitar:

caixa

vol

.vscode

Na barra de mensagens, digite Created pipeline.yml e clique no botão COMPROMETA-SE botão

SSL.com's EV Assinatura de código certificados ajudam a proteger seu código contra adulteração e comprometimento não autorizados com o mais alto nível de validação e estão disponíveis por apenas $ 249 por ano. Você também pode use seu certificado de assinatura de código EV em escala na nuvem usando eSigner.

PEÇA AGORA

Prossiga para clicar no Sincronizar alterações botão

Vá para visualstudio.com e clique Repos no painel

Atualize a página para ver o arquivo yml

Clique Dutos no painel

Em seguida, clique em Criar pipeline

Clique em Azure Repos Git

Selecione seu arquivo YAML

Clique Variáveis botão seguido por Nova variável

Coloque o valor para cada variável de ambiente e clique no botão OK botão

Clique no sinal + para continuar adicionando cada variável

Depois de colocar todas as variáveis, prossiga para criar seu pipeline

Execute seu pipeline

Clique Dutos no painel. Clique nos três pontos (mais opções) em seu pipeline. Clique Executar pipeline. Finalmente, clique no Execute botão.

Clique em Construir para iniciar o estágio de construção

Verifique se cada trabalho no estágio de construção foi bem-sucedido

Clique na seta suspensa ao lado Trabalho para ver o status de cada trabalho de compilação

Inicie o estágio Sign clicando Trabalho

Verifique se cada etapa do processo de assinatura foi bem-sucedida

Verifique novamente se os estágios de construção e assinatura foram bem-sucedidos

Você pode consultar o SSL.com Repositório Github que contém os códigos-fonte da imagem do docker e descreve como usá-lo: https://github.com/SSLcom/ci-images 

Exemplo de pipeline DevOps do Azure

Confira o exemplo de pipeline do Azure DevOps que criamos em github.com/SSLcom/codesigner-azuredevops-sample

Outros guias de integração de assinatura remota

Precisa de soluções personalizadas? 

Com nosso conhecimento especializado e equipe de suporte cinco estrelas, estamos prontos e dispostos a trabalhar com você em soluções personalizadas ou descontos em assinaturas de alto volume de nível empresarial. Preencha o formulário abaixo e entraremos em contato.

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.