Integrazione Cloud Code Signing con Travis CI

Questo articolo mostra come eseguire la firma automatica del codice su Travis CI integrando eSigner CodeSignTool nella tua pipeline. 

eSigner è la nostra piattaforma di firma del codice remota che fornisce lo stesso livello di sicurezza dei token USB e dell'HSMS in rete, ma in modo più efficiente e intuitivo.  Parte del toolkit eSigner è CodeSignTool: un'utilità della riga di comando sicura, ideale per eseguire la firma del codice aziendale in vari ambienti CI/CD, incluso Travis.
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 SUBITO

variabili ambientali

  • USERNAME: nome utente dell'account SSL.com. (Necessario)
  • PASSWORD: password dell'account SSL.com (richiesto)
  • CREDENZIALE_ID: ID credenziale per la firma del certificato. Se credential_id viene omesso e l'utente dispone di un solo certificato di firma del codice eSigner, CodeSignTool verrà impostato automaticamente su quello. Se l'utente ha più di un certificato di firma del codice, questo parametro è obbligatorio. (Necessario)
  • TOTP_SEGRETO: Segreto TOTP OAuth. È possibile accedere a informazioni dettagliate su https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obbligatorio)
  • NOME_AMBIENTE : Ambiente 'TEST' o 'PROD'. (Necessario)

ingressi

  • percorso_file_input: Percorso dell'oggetto codice da firmare. (Necessario)
  • output_dir_percorso: Directory in cui verranno scritti gli oggetti codice firmato. Se output_path viene omesso, il file specificato in -file_path verrà sovrascritto con il file firmato.

Codice Java (Maven) Flusso di lavoro di esempio di firma JAR

Crea un progetto

Sotto il progetto, crea un file per Travis

Definire i componenti del flusso di lavoro

  1. Posizionare l'architettura della CPU su cui eseguire il lavoro

arco: amd64

  1. Lingua predefinita in cui eseguire i test

lingua: java

  1. Specificare il sistema operativo su cui eseguire il lavoro

sistema operativo: linux

  1. Scrivi la distribuzione Ubuntu che verrà utilizzata

dist: bionico

  1. Definire le variabili d'ambiente a livello globale. La proprietà a livello di lavoro ha la precedenza sulle variabili globali.
  • Tieni presente che TERM=dumb è necessario solo per le istanze del progetto Gradle.
  • In ENVIRONMENT_NAME, inserisci "TEST" per la firma del test e "PROD" per la firma dal vivo.

ambiente:

  globale:

    – PROJECT_NAME="HelloWorld"

    – VERSIONE_PROGETTO=”0.0.1″

    – TERM=stupido

    – NOME_AMBIENTE=”PROVA”

  1. Specificare l'ordine delle fasi. Tutti i lavori in una fase devono essere completati prima dell'esecuzione della fase successiva.

fasi:

  - costruire

  - cartello

Delinea la fase di costruzione  

lavori:

  includono:

        – fase: costruire

  1. Il nome del lavoro

      nome: build-maven

  1. La distribuzione Ubuntu da usare

      dist: bionico

  1. Usa il comando Docker per la firma  

      servizi:

        – Docker

  1. Usa dotnet-cli per costruire il progetto

      lingua: java

  1. Versione Java per costruire il progetto

      JDK:

      – oraclejdk17

  1. Cache m2 directory per accelerare

      Cache:

        directory:

        – $CASA/.m2

  1. Scrivere lo script Before da eseguire prima di creare il progetto

      prima_script:

        # Crea directory per gli artefatti

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefatti

        – mkdir -p ${TRAVIS_BUILD_DIR}/pacchetti

        # Imposta le opzioni di build di Maven

        – export MAVEN_CLI_OPTS=”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Scrivi lo script per costruire il progetto.
  • In questo flusso di lavoro di esempio di firma sono stati creati più tipi di progetto. Questo è il motivo per cui i file di diversi tipi di progetto sono stati conservati creando delle sottocartelle. Per i progetti Java è stata creata una sottocartella denominata 'java'. Nello screenshot della demo sopra, non era necessario creare una sottocartella denominata "java", quindi questa non era inclusa nello script.

      sceneggiatura:

        # Costruisci il progetto Maven con le opzioni Maven

        – mvn $MAVEN_CLI_OPTS installazione pulita -f java/pom.xml

         # Copia gli artefatti creati nella directory degli artefatti

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Descrivere come specificare un elenco di file e directory che devono essere allegati al lavoro se ha esito positivo.

      spazi di lavoro:

        creare:

          nome: maven-jar-artefacts

          percorsi:

            # Salva artefatto per utilizzare il lavoro di firma

            – ${TRAVIS_BUILD_DIR}/pacchetti/${NOME_PROGETTO}.jar

Delinea la fase del segno

 – stadio: segno

  1. Scrivi il nome del lavoro

      nome: sign-jar-file

  1. Posiziona la distribuzione Ubuntu da usare

      dist: bionico

  1. Usa il comando Docker per la firma  

      servizi:

        – Docker

     

  1. Definire le variabili di ambiente per lavori specifici.
  • Nello screenshot sopra, il comando sign è stato definito direttamente nello script sign e non nelle variabili di ambiente. BOTH metodi possono firmare correttamente con TravisCI.

      ambiente:

        COMANDO=”segno”

  1. Usa dotnet-cli per costruire il progetto

      lingua: java

  1. Versione Java per costruire il progetto

      JDK:

      – oraclejdk17

  1. Prima dello script da eseguire prima della creazione del progetto

      prima_script:

        # Crea directory per gli artefatti

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefatti

        – mkdir -p ${TRAVIS_BUILD_DIR}/pacchetti

     

  1. Script per costruire il progetto

      sceneggiatura:

        # Docker Pull CodeSigner Docker Immagine

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

        # Firma artefatto con l'immagine Docker CodeSigner

        –docker run -i –rm –dns 8.8.8.8 –host di rete –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –volume ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENZIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e NOME_AMBIENTE=${NOME_AMBIENTE} ghcr.io/sslcom/codesigner:latest ${COMMAND}

          -input_file_path=/codesign/examples/${NOME_PROGETTO}.jar -output_dir_path=/codesign/output

  1. Utilizzato per specificare un elenco di file e directory che devono essere allegati al lavoro in caso di esito positivo.

      spazi di lavoro:

        uso:

          – artefatti di maven-jar

        creare:

          nome: file jar firmato

          percorsi:

            # Salva artefatto firmato

            – ${TRAVIS_BUILD_DIR}/artefatti/${NOME_PROGETTO}.jar

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 SUBITO

Definire le variabili d'ambiente

Vai su Travis e fai clic su Impostazioni profilo pulsante

Aggiungi il valore per ogni variabile

Scorri verso il basso fino a variabili ambientali sezione e fare clic sul pulsante Aggiungi per aggiungere il valore per ciascuna variabile

Crea un repository Github

Cerca i comandi push su Github

Scrivi i comandi push su un terminale del tuo editor

Attendi il completamento del lavoro di compilazione

Su Travis, il processo di compilazione dovrebbe avviarsi automaticamente dopo aver inviato il codice.

Avvia la fase di firma del codice

Clicca su segno sezione per CodeSignTool per avviare il processo di firma

Attendi che la tua macchina virtuale termini l'avvio

Conferma se la firma del codice ha esito positivo

È possibile fare riferimento a SSL.com Repository Github che contiene i codici sorgente dell'immagine docker e descrive come usarlo: https://github.com/SSLcom/ci-images

Esempio Travis CI Pipeline

Dai un'occhiata alla pipeline Travis CI di esempio che abbiamo creato github.com/SSLcom/codesigner-travisci-sample

Altre guide all'integrazione della firma remota del servizio 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.

Iscriviti alla newsletter di SSL.com

Non perdere nuovi articoli e aggiornamenti da SSL.com

Rimani informato e sicuro

SSL.com è un leader globale nella sicurezza informatica, PKI e certificati digitali. Iscriviti per ricevere le ultime notizie del settore, suggerimenti e annunci di prodotti da SSL.com.

Ci piacerebbe il tuo feedback

Partecipa al nostro sondaggio e facci sapere cosa ne pensi del tuo recente acquisto.