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}}
- 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.
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)
- password: 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
- Crea una cartella Github sul tuo editor. Includi flussi di lavoro con la cartella e crea un file yml nella cartella.
- Assegna un nome al tuo progetto e al tipo di flusso di lavoro coinvolto
Nome: Maven Build and Sign
- Attiva questo flusso di lavoro su una spinta
acceso: spingere
- 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
- Definisci i lavori sul tuo editor
lavori: build-and-sign-jar:
- Esegui lavoro su Ubuntu Runner
continua: ubuntu-latest
- 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
- 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
- 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.
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.
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
- Integrazione della firma del codice cloud con CircleCI
- Integrazione Cloud Code Signing con GitLab CI
- Integrazione della firma del codice cloud con Jenkins CI
- Integrazione Cloud Code Signing con Travis CI
- Integrazione della firma del codice cloud con Azure DevOps
- Automazione della firma del codice cloud con servizi 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.