Integrazione della firma del codice cloud con le azioni GitHub

Questo articolo della guida mostra come eSigner è integrato con GitHub Actions per la firma automatica del codice in una configurazione di integrazione continua/consegna continua (CI/CD).

eSigner è la nostra piattaforma di firma basata su cloud a cui si affidano gli sviluppatori di software di tutto il mondo per condurre la firma del codice aziendale senza la necessità di token USB o altro hardware specializzato.  Uno dei componenti di eSigner è CodeSignTool: un'utilità della riga di comando basata sulla privacy estremamente efficace per gli sviluppatori che desiderano automatizzare la firma del codice.  Le sezioni seguenti mostrano come puoi firmare un codice Java (Maven) su GitHub Actions usando eSigner CodeSignTool.

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

Impiego

- nome: Firma artefatto con CodeSignTool

  usa: sslcom/actions-codesigner@develop

  con:

  •      Comandi di CodeSignTool:

     - get_credential_ids: restituisce l'elenco degli ID credenziali eSigner associati a un utente.

     - credential_info: fornisce informazioni sulla chiave e sul certificato relative a un ID credenziale.

     - sign: Oggetto codice segno e marca temporale.

     - batch_sign: Firma e contrassegna più oggetti di codice con una OTP.

     - hash: pre-calcola hash per un uso successivo con il comando batch_hash_sign.

     - batch_sign_hash: firma gli hash precalcolati con il comando hash.

        comando: segno

 

  • Nome utente dell'account SSL.com.

         username: ${{secrets.ES_USERNAME}}

  •  Password dell'account SSL.com.

         password: ${{secrets.ES_PASSWORD}}

  • ID credenziale per la firma del certificato.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Percorso dell'oggetto codice da firmare.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • Directory in cui verranno scritti gli oggetti codice firmato.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

ingressi

  • nome utente: nome utente dell'account SSL.com. (Necessario)
  • parola d'ordine: password dell'account SSL.com (richiesto)
  • ID_credenziale: 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)
  • percorso del file: Percorso dell'oggetto codice da firmare. (Necessario)
  • percorso di uscita: 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

Preparare i componenti del flusso di lavoro

  1. Crea una cartella Github sul tuo editor. Includi flussi di lavoro con la cartella e crea un file yml nella cartella.
    1. Assegna un nome al tuo progetto e al tipo di flusso di lavoro coinvolto
    Nome: Maven Build and Sign
     
    1. Attiva questo flusso di lavoro su una spinta
    acceso: spingere
     
    1. Crea una variabile di ambiente
    • Le variabili di ambiente vengono utilizzate per rendere i campioni più leggibili. Nello screenshot sopra del flusso di lavoro di esempio, PROJECT_NAME, PROJECT_VERSION e MAVEN_VERSION sono stati opzionalmente omessi. La firma può comunque procedere anche con queste omissioni.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Definisci i lavori sul tuo editor
    lavori: build-and-sign-jar:
     
    1. Esegui lavoro su Ubuntu Runner
        continua: ubuntu-latest
     
    1. Crea un nome. Quando viene eseguito il flusso di lavoro, questo è il nome che viene registrato.
      nome: CodeSigner su Java con Maven
     

Delineare i passaggi per il controllo del codice sorgente, la configurazione dell'ambiente Java e Maven e la creazione di Artifact Directory.

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

   passi: - usi: actions/checkout@v2
 

  2) Configurare l'ambiente Java e Maven per il flusso di lavoro da utilizzare.

    - nome: Installa Maven e Java utilizza: s4u/setup-maven-action@v1.3.1 con: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) Creare una directory degli artefatti per archiviare i file degli artefatti firmati e non firmati

 - nome: Crea shell di directory: bash run: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/pacchetti

 

      4) Costruisci un progetto o una soluzione esperti e tutte le sue dipendenze.

      Dopo aver creato il file jar, copialo nella cartella "pacchetti" per la firma

  • In questo flusso di lavoro di esempio di firma scritta, 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.
 - nome: Build Java Project shell: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. barattolo
 

Descrivi i passaggi per i lavori Firma e Carica

  1. Il processo di firma è il passaggio in cui i file JAR (artifact) creati verranno firmati con CodeSignTool.
 - nome: Sign Artifact utilizza: sslcom/actions-codesigner@develop con:

           Oggetto codice segno e timestamp.

comando: firma

           Nome utente dell'account SSL.com.

nome utente: ${{secrets.ES_USERNAME}}

           Password dell'account SSL.com.

password: ${{secrets.ES_PASSWORD}}

           ID credenziale per la firma del certificato.

credenziale_id: ${{secrets.CREDENTIAL_ID}}

           Segreto TOTP OAuth (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{secrets.ES_TOTP_SECRET}}

           Percorso dell'oggetto codice da firmare. (DLL, JAR, EXE, file MSI vb... )

  percorso_file: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Directory in cui verranno scritti gli oggetti codice firmato.

percorso_output: ${GITHUB_WORKSPACE}/artifacts

 

  1. Il processo di caricamento è il passaggio in cui verranno caricati gli artefatti dal flusso di lavoro consentendoti di condividere i dati tra i lavori e archiviare i dati una volta completato il flusso di lavoro
 - nome: Carica file firmati utilizza: actions/upload-artifact@v2 con: nome: ${{env.PROJECT_NAME}}.jar percorso: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Ottieni un caricatore di artefatti di build da Github Marketplace

Rivedi il tuo script di codifica

Nel complesso, lo script di codifica per i lavori di creazione, firma e caricamento dovrebbe essere simile all'immagine qui sotto. Assicurati di correggere eventuali errori come ortografia errata o interruzioni di riga errate nello script in modo che il processo di firma si svolga senza intoppi.

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

Definisci le tue variabili d'ambiente

Vai alla posizione del tuo progetto sul tuo account Github. Clicca il Azioni scheda. Clicca il Nuovo segreto del repository per inserire i valori per ciascuna variabile di ambiente richiesta per la firma del codice.

Crea un nuovo repository sulla riga di comando

Procedi alla posizione del tuo progetto su Github e copia ogni componente del comando push.

Spingi il progetto

Includi ogni riga di comando push nel tuo editor di codice. Al termine, il codice verrà inviato automaticamente su Github.

Attendi che l'artefatto sia firmato con eSigner CodeSignTool

Carica il file firmato

Clicca sul file firmato per caricarlo.

Nota: assicurati di correggere gli errori tipografici o le interruzioni di riga errate nello script in modo che il processo di firma si svolga senza intoppi.

Esempio di pipeline di azioni Github


Dai un'occhiata alla pipeline di esempio di Github Actions che abbiamo creato github.com/SSLcom/codesigner-github-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.

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.