Questa è una guida su come è possibile integrare Azure DevOps con eSigner CodeSignTool per eseguire la firma automatica del codice.
CodeSignTool è un'utilità della riga di comando adatta per i processi di firma del codice cloud e si integra perfettamente con varie piattaforme CI/CD. Fa parte di eSigner: il nostro servizio di firma remota che offre un approccio efficiente, sicuro e intuitivo alla firma del codice.
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.
Crea un progetto su visualstudio.com
Crea un nuovo file .yml nel tuo editor di codice
Imposta i trigger di integrazione e le variabili di ambiente
Trigger di integrazione continua
grilletto:
- nessuno
Definisce le variabili di ambiente a livello globale. La proprietà a livello di lavoro ha la precedenza sulle variabili globali
variabili:
buildConfiguration: 'Rilascio'
Raggruppa i lavori in più fasi
Scrivi i passaggi per la fase di costruzione. Tutti i lavori in una fase devono essere completati prima dell'esecuzione della fase successiva.
fasi:
– fase: costruire
# Quando viene eseguito il flusso di lavoro, questo è il nome che viene registrato
displayName: Costruisci
lavori:
- lavoro:
piscina:
Esegui il lavoro su macchine virtuali Windows
vmImage: 'windows-latest'
passaggi:
Installa Dotnet 6.0.x
– attività: UseDotNet@2
displayName: 'Installa .NET Core SDK'
ingressi:
versione: '6.0.x'
performMultiLevelLookup: vero
includePreviewVersions: vero
Ripristina il progetto Dotnet
– attività: DotNetCoreCLI@2
displayName: Ripristina
ingressi:
comando: 'ripristina'
Crea un progetto dotnet con la configurazione di rilascio
– attività: DotNetCoreCLI@2
displayName: Costruisci
ingressi:
comando: costruisci
progetti: HelloWorld.csproj
argomenti: '–configuration $(buildConfiguration)'
Crea directory per gli artefatti firmati
– powershell: New-Item -ItemType Directory -Path ./artifacts
displayName: 'Directory create per gli artefatti'
Crea directory per i pacchetti firmati
– powershell: New-Item -ItemType Directory -Path ./packages
displayName: 'Directory create per i pacchetti'
Copia l'artefatto come percorso di firma
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: "Copia gli artefatti compilati nella directory dei pacchetti"
Salva artefatto per utilizzare il lavoro di firma
– attività: PublishBuildArtifacts@1
displayName: 'Salva per essere firmato artefatto per il download'
ingressi:
percorsoPublish: ./packages/HelloWorld.dll
artefatto: HelloWorld.dll
Scrivi i passaggi per la fase Segno
– stadio: Segno
# Quando viene eseguito il flusso di lavoro, questo è il nome che viene registrato
displayName: segno
lavori:
- lavoro:
piscina:
Esegui lavoro su macchine virtuali Ubuntu
vmImage: "Ubuntu-più recente"
passaggi:
Crea directory per gli artefatti firmati
– script: mkdir -p ./artifacts && mkdir -p ./pacchetti
displayName: "Directory create per artefatti e pacchetti"
Scarica il manufatto da firmare
– compito: ScaricaPipelineArtifact@2
ingressi:
artefatto: HelloWorld.dll
downloadPercorso: ./packages
Installa Docker 17.09.0-ce
– attività: DockerInstaller@0
displayName: programma di installazione Docker
ingressi:
dockerVersione: 17.09.0-ce
releaseType: stabile
Docker Pull CodeSigner Docker Immagine
– script: docker pull ghcr.io/sslcom/codesigner:latest
displayName: 'Docker Pull CodeSigner Docker Image'
Firma artefatto con l'immagine Docker CodeSigner
– script: docker run -i –rm –dns 8.8.8.8 –host di rete –volume $PWD/pacchetti:/codesign/examples –volume $PWD/artefatti:/codesign/output
-e USERNAME=$(USERNAME) -e PASSWORD=$(PASSWORD) -e CREDENZIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:ultimo segno -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/output
displayName: 'Firma artefatto con l'immagine Docker CodeSigner'
Salva l'artefatto firmato per il download
– attività: PublishBuildArtifacts@1
displayName: 'Salva artefatto firmato per il download'
ingressi:
percorsoPublish: ./artifacts/HelloWorld.dll
artefatto: HelloWorld.dll
Crea un nuovo file .gitignore
Digitare:
bidone
obj
.vscode
Nella barra dei messaggi, digita Created pipeline.yml e fai clic su Commettere pulsante
Procedi a fare clic su Sincronizza modifiche pulsante
Procedi su visualstudio.com e clicca Repos sul cruscotto
Aggiorna la pagina per vedere il file yml
Clicchi Condotte sul cruscotto
Quindi, fare clic Crea pipeline
Fare clic su Azure Repos Git
Seleziona il tuo file YAML
Clicchi Variabili pulsante seguito da Nuova variabile
Posizionare il valore per ciascuna variabile di ambiente e fare clic su OK pulsante
Fare clic sul segno + per continuare ad aggiungere ogni variabile
Dopo aver inserito tutte le variabili, procedi alla creazione della pipeline
Gestisci la tua pipeline
Clicchi Condotte sul cruscotto. Fai clic sui tre punti (più opzioni) sulla pipeline. Clic Esegui pipeline. Infine, fai clic sul Correre pulsante.
Fare clic su Crea per avviare la fase di creazione
Controlla se ogni lavoro nella fase di costruzione ha esito positivo
Fare clic sulla freccia a discesa accanto Lavoro per vedere lo stato di ogni processo di compilazione
Avvia la fase Segno facendo clic Lavoro
Controlla se ogni passaggio del processo di firma ha esito positivo
Ricontrolla se entrambe le fasi di compilazione e firma hanno esito positivo
Esempio di pipeline di Azure DevOps
Dai un'occhiata alla pipeline di Azure DevOps di esempio che abbiamo creato github.com/SSLcom/codesigner-azeredevops-sampleAltre guide all'integrazione della firma remota
- Integrazione della firma del codice cloud con CircleCI
- Integrazione della firma del codice cloud con le azioni GitHub
- Integrazione Cloud Code Signing con GitLab CI
- Integrazione Cloud Code Signing con Travis CI
- Integrazione della firma del codice cloud con Jenkins CI
- 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.