SSL.com

Integrazione della firma del codice cloud con CircleCI

Questo tutorial mostra come eSigner è integrato con CircleCI per la firma automatica del codice. eSigner è l'ambiente cloud di SSL.com per la firma del codice. Le chiavi e i certificati di firma sono ospitati in modo sicuro nel cloud da SSL.com e sono accessibili per la firma da qualsiasi dispositivo connesso a Internet, rendendo così eSigner una delle migliori piattaforme per la firma del codice aziendale. Il toolkit eSigner include CodeSignTool che è un utilità della riga di comando per Firma del codice EV certificati ed è ideale per creare processi di firma automatizzati in varie piattaforme di integrazione continua/consegna continua (CI/CD), tra cui CircleCI. 

SSL.com's EV Firma del codice i certificati aiutano a proteggere il tuo codice da manomissioni e compromissioni non autorizzate con il massimo livello di convalida e sono disponibili a partire da $ 249 all'anno. È anche possibile usa il tuo certificato EV Code Signing su larga scala nel cloud utilizzando eSigner.

ORDINA ORA

variabili ambientali

ingressi

Preparare i componenti del flusso di lavoro (firma della DLL del codice .NET)

  1. Crea una cartella .circleci

Nell'area di lavoro per la firma del codice, crea un file cartella .circleci. Sotto di esso, crea un config.yml.

  1. Imposta la versione CI
Versione: 2.1
 
  1.  Richiama lavori tramite flussi di lavoro. I flussi di lavoro orchestrano una serie di lavori da eseguire. I lavori per questa pipeline sono configurati di seguito

Vedi: https://circleci.com/docs/2.0/configuration-reference/#workflows

flussi di lavoro:
 
  1. Scrivi il nome del flusso di lavoro.
  rete:
 
  1. All'interno del flusso di lavoro, definisci i lavori che desideri eseguire.
 lavori: - build - sign: richiede: - build
 

Definisci la fase di costruzione

  1. Definire un lavoro da richiamare in seguito in un flusso di lavoro.

 (Vedi: https://circleci.com/docs/2.0/configuration-reference/#jobs)

lavori: costruire:

 

  1. Crea una variabile di ambiente
  ambiente: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project

 

  1.  Definisci un esecutore Docker: (https://circleci.com/docs/2.0/executor-types/)

    # Puoi specificare un'immagine da Dockerhub o utilizzare una delle nostre Immagini di convenienza dall'Hub di sviluppo di CircleCI.

 docker: - immagine: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Posizionare la directory di lavoro per il lavoro
  directory_di_lavoro: /home/circleci/progetto

 

  1. Aggiungi passaggi al lavoro

    Vedi: https://circleci.com/docs/2.0/configuration-reference/#steps

  passaggi:

 

  1.  Controlla il codice sorgente in modo che il flusso di lavoro possa accedervi.
    - guardare

 

  1. Crea una directory degli artefatti per archiviare file di artefatti firmati e non firmati
    - esegui: nome: comando Crea directory degli artefatti: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/pacchetti

 

  1.  Crea un progetto o una soluzione dotnet e tutte le sue dipendenze.
      - run: name: Build Dotnet Project Comando: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Copia l'artefatto nella directory degli artefatti
  - eseguire: nome: Copia artefatti comando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Mantieni l'artefatto nella directory degli artefatti per la firma
  - persist_to_workspace: root: . percorsi: - pacchetti/*
 

Definisci la fase della firma

  1. Definisci il lavoro di firma
 cartello:

 

  1. Crea una variabile di ambiente
    ambiente: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project

 

  1.     Posizionare la directory di lavoro per il lavoro su Circle-CI
 directory_di_lavoro: /home/circleci/progetto

 

  1. Nome dell'artefatto per la firma
    parametri: nome-artefatto: tipo: stringa predefinito: ''

 

  1. Definisci un esecutore Docker:

 Per ulteriori riferimenti, vedere: https://circleci.com/docs/2.0/executor-types/

       Puoi specificare un'immagine da Dockerhub o utilizzare una delle nostre Immagini di convenienza dall'Hub di sviluppo di CircleCI.

       Assicurati di aggiornare il tag immagine Docker di seguito alla versione openjdk della tua applicazione.

       Un elenco delle immagini disponibili CircleCI Docker è disponibile qui: https://circleci.com/developer/images/image/cimg/openjdk

   finestra mobile: - immagine: cimg/openjdk:17.0.3

 

  1. Aggiungi passaggi al lavoro

      Per ulteriori riferimenti, vedere: https://circleci.com/docs/2.0/configuration-reference/#steps

    passaggi:

 

  1. Crea una directory degli artefatti per archiviare file di artefatti firmati e non firmati
  - esegui: nome: comando Crea directory degli artefatti: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/pacchetti

 

  1. Allega a Workspace per accedere al file artefatto
   - attach_workspace: in: /home/circleci/project

 

  1. Abilita Docker per CodeSigner su Circle-CI
 - setup_remote_docker: nome: Configurazione versione Docker remoto: 19.03.13 docker_layer_caching: true

 

  1. Estrai l'immagine Docker di Codesigner dal registro di Github
        - esegui: nome: comando Docker Pull Image: | docker pull ghcr.io/sslcom/codesigner:ultimo docker pull alpine:3.4

 

  1. Scrivi il passaggio in cui verrà firmato l'artefatto con CodeSignTool.
 - run: name: comando Sign Artifact File: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -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/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parameters.artifact-name >>

 

  1. Scrivi il passaggio per il tuo artefatto da caricare dal tuo flusso di lavoro consentendoti di condividere i dati tra i lavori e archiviare i dati una volta completato un flusso di lavoro
    - store_artifacts: nome: Carica file firmati percorso: /home/circleci/project/artifacts/<< parameters.artifact-name >> destinazione: << parameters.artifact-name >>
 

Crea un nuovo repository sulla riga di comando

Copia i componenti del comando push dalla posizione del tuo progetto sul tuo account GitHub

Includi tutti i componenti dei comandi push nel tuo editor

SSL.com's EV Firma del codice i certificati aiutano a proteggere il tuo codice da manomissioni e compromissioni non autorizzate con il massimo livello di convalida e sono disponibili a partire da $ 249 all'anno. È anche possibile usa il tuo certificato EV Code Signing su larga scala nel cloud utilizzando eSigner.

ORDINA ORA

Configura un progetto su CircleCI utilizzando il repository integrato in GitHub

Definisci tutte le variabili d'ambiente

Mentre il progetto è in esecuzione, fare clic sul pulsante Impostazioni progetto seguito da Variabili d'ambiente per definire le variabili

Posiziona i valori per ciascuna variabile

Clicca su Aggiungi variabile d'ambiente pulsante per aggiungere i nomi e i valori di tutte le variabili richieste per il progetto.

Aspetta che il progetto venga costruito

Fare clic su Persistenza nell'area di lavoro

Attendere brevemente che l'archivio dell'area di lavoro venga caricato correttamente.

Fare clic sul pulsante del segno

Attendi la configurazione del Docker remoto

Potrebbe volerci più di un minuto, a seconda delle dimensioni del file

Attendi che gli artefatti vengano firmati

Clicchi Artifacts linguetta

Se fai clic su Artifacts, sarai in grado di vedere il file che hai firmato correttamente con il codice. Inoltre, CircleCI ti avviserà dell'avvenuta firma del codice.

Puoi fare riferimento al repository Github di SSL.com che contiene i codici sorgente dell'immagine docker e descrive come usarlo: https://github.com/SSLcom/ci-images

Pipeline CircleCI di esempio

Dai un'occhiata alla pipeline CircleCI di esempio che abbiamo creato github.com/SSLcom/codesigner-circleci-sample

Altre guide all'integrazione della firma remota CI/CD

Hai bisogno di soluzioni personalizzate? 

Con la nostra conoscenza esperta e il personale di supporto a cinque stelle, siamo pronti e disposti a lavorare con te su soluzioni personalizzate o sconti per firme di alto volume a livello aziendale. Compila il modulo sottostante e sarai ricontattato.

Esci dalla versione mobile