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.
Flusso di lavoro di esempio di firma della DLL del codice .NET
Crea un file yml
Raggruppa i lavori in più fasi. Tutti i lavori in una fase devono essere completati prima dell'esecuzione della fase successiva.
fasi: - costruire - firmare
Definire le variabili d'ambiente a livello globale. La proprietà a livello di lavoro ha la precedenza sulle variabili globali.
- 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 DOTNET_VERSION sono stati opzionalmente omessi. La firma può comunque procedere con queste omissioni.
- In ENVIRONMENT_NAME, inserisci "TEST" per la firma del test e "PROD" per la firma dal vivo.
variabili: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
Definire il Fase di costruzione
Di seguito è riportata la definizione del tuo lavoro per creare artefatto dll
build-dotnet:
- Definisci in quale fase verrà eseguito il lavoro.
fase: costruire
- Inserisci il nome completo dell'immagine che dovrebbe essere utilizzata. Dovrebbe contenere la parte del Registro di sistema, se necessario.
immagine: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Definisci gli script che dovrebbero essere eseguiti *prima* del lavoro. Può essere impostato a livello globale o per lavoro.
prima_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pacchetti
- Definisci gli script Shell eseguiti dal Runner. Crea artefatto 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/${ NOME_PROGETTO}.dll
- Specificare un elenco di file e directory che devono essere allegati al lavoro se riesce.
- Il 'scade_in' consente di eliminare il file dopo un certo periodo di tempo. Il suo utilizzo è facoltativo. Questo è il motivo per cui lo screenshot del flusso di lavoro di esempio sopra non mostra questa proprietà.
artefatti: percorsi: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll scadono_in: 5 minuti
Definisci la fase dei segni
Di seguito è riportata la definizione del tuo lavoro per firmare artefatto dll
sign-dotnet-artefatti:
- Definisci in quale fase verrà eseguito il lavoro.
stadio: segno
- Inserisci il nome completo dell'immagine che dovrebbe essere utilizzata. Dovrebbe contenere la parte del Registro di sistema, se necessario.
immagine: finestra mobile:19.03.0
- Definisci i servizi. È simile alla proprietà `image`, ma collegherà i servizi specificati al contenitore `image`.
servizi: - docker:19.03.0-dind
- 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. Baltri metodi possono firmare correttamente con TravisCI.
variabili: COMANDO: "segno"
- Definisci gli script che dovrebbero essere eseguiti *prima* del lavoro. Può essere impostato a livello globale o per lavoro.
prima_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/pacchetti
- Posiziona gli script Shell eseguiti dal Runner. Firma l'artefatto .NET dll con 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
- Scrivere lo script che può essere utilizzato per specificare un elenco di file e directory che devono essere allegati al lavoro se ha esito positivo.
artefatti: percorsi: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll scadono_in: 1 giorni
- Specificare un elenco di nomi lavoro dalle fasi precedenti da cui caricare gli artefatti.
dipendenze: - build-dotnet
Avvia la fase di costruzione
Crea un archivio
Fare riferimento alle istruzioni della riga di comando su Gitlab come mostrato nello screenshot seguente
Spingi la tua cartella
Fallo facendo clic terminal nel menu, seguito da Nuovo terminale.
Digita lo script push sul tuo terminale per eseguire il push del progetto
Fare clic sul pulsante Crea
Dopo aver attivato la pipeline, procedere con la compilazione
Verifica se la compilazione ha esito positivo
Avvia la fase dei segni
Procedi a firmare il manufatto
Conferma se la firma del codice ha esito positivo
Ora puoi scaricare il file firmato
Esempio di pipeline Gitlab CI
Dai un'occhiata alla pipeline Gitlab CI di esempio che abbiamo creato github.com/SSLcom/codesigner-gitlabci-sampleAltre guide all'integrazione della firma remota CI/CD
- Integrazione della firma del codice cloud con CircleCI
- Integrazione della firma del codice cloud con le azioni GitHub
- 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
- Integrazione della firma del codice cloud con BitBucket
- 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.