SSL.com

Integração do Cloud Code Signing com GitLab CI

Este é um tutorial sobre como fazer assinatura de código automatizada no GitLab CI usando eSigner CodeSignTool.  CodeSignTool é um utilitário de linha de comando seguro que faz parte do eSigner: nosso ambiente de assinatura de código em nuvem que beneficia editores e desenvolvedores de software com sua capacidade de conduzir a assinatura de código empresarial com segurança e eficiência de maneira não complicada.  O fluxo de trabalho de exemplo abaixo mostra um código .NET DLL sendo assinado no GitLab CI com eSigner.

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

entradas

Fluxo de trabalho de exemplo de assinatura de DLL de código .NET

Criar um arquivo yml

Agrupe os trabalhos em etapas. Todos os trabalhos em um estágio devem ser concluídos antes que o próximo estágio seja executado.

etapas: - construir - assinar
 

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

variáveis: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definir o Estágio de construção

Abaixo está a definição do seu trabalho para construir o artefato dll

construir-dotnet:

 

  1. Defina em qual estágio o trabalho será executado.
  fase: construir

 

  1. Coloque o nome completo da imagem que deve ser utilizada. Ele deve conter a parte do Registro, se necessário.
 imagem: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Defina os scripts que devem ser executados *antes* do trabalho. Pode ser definido globalmente ou por trabalho.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Defina os scripts do Shell executados pelo Executor. Construir artefato de DLL
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. Especifique uma lista de arquivos e diretórios que devem ser anexados ao trabalho se for bem-sucedido.
artefatos: caminhos: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minutos
 

Defina o estágio de sinalização

Abaixo está a definição do seu trabalho para assinar o artefato dll

Sign-dotnet-artefacts:

 

  1. Defina em qual estágio o trabalho será executado.
  estágio: sinal

 

  1. Coloque o nome completo da imagem que deve ser utilizada. Ele deve conter a parte do Registro, se necessário.
 imagem: janela de encaixe:19.03.0

 

  1. Defina serviços. Isso é semelhante à propriedade `image`, mas vinculará os serviços especificados ao contêiner `image`.
serviços: - janela de encaixe:19.03.0-dind

 

  1. Defina variáveis ​​de ambiente para trabalhos específicos.
  variáveis: COMANDO: "sinal"

 

  1. Defina os scripts que devem ser executados *antes* do trabalho. Pode ser definido globalmente ou por trabalho.
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. Coloque scripts Shell executados pelo Runner. Assine o artefato .NET dll com CodeSignTool Docker Image
script: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Escreva o script que pode ser usado para especificar uma lista de arquivos e diretórios que devem ser anexados ao trabalho se for bem-sucedido.
artefatos: caminhos: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 dias

 

  1. Especifique uma lista de nomes de tarefas de estágios anteriores dos quais os artefatos devem ser carregados.
dependências: - build-dotnet

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

Iniciar o estágio de construção

Crie um repositório

Consulte as instruções da linha de comando no Gitlab, conforme mostrado na captura de tela abaixo

Empurre sua pasta

Faça isso clicando terminal no menu, seguido de Novo Terminal.

Digite o script push no seu Terminal para enviar o projeto 

Clique no botão Construir

Depois de acionar o pipeline, prossiga para construir

Verifique se a compilação foi bem-sucedida  

Inicie o Estágio de Sinalização

Prossiga para assinar o artefato

Confirme se a assinatura do código foi bem-sucedida

Agora você pode baixar o arquivo assinado

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 de CI do Gitlab

Confira o exemplo de pipeline Gitlab CI que criamos em github.com/SSLcom/codesigner-gitlabci-sample

Outros guias de integração de assinatura remota de CI/CD

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.

Sair da versão móvel