Dit is een handleiding over hoe Azure DevOps kan worden geïntegreerd met eSigner CodeSignTool om geautomatiseerde code-ondertekening uit te voeren.
CodeSignTool is een opdrachtregelprogramma dat geschikt is voor ondertekeningsprocessen in de cloud en naadloos integreert met verschillende CI/CD-platforms. Het maakt deel uit van eSigner: onze service voor ondertekening op afstand die een efficiënte, veilige en gebruiksvriendelijke benadering biedt voor het ondertekenen van codes.
Omgevingsvariabelen
- USERNAME: gebruikersnaam van SSL.com-account. (Verplicht)
- WACHTWOORD: SSL.com-accountwachtwoord (vereist)
- CREDENTIAL_ID: Referentie-ID voor ondertekeningscertificaat. Als credential_id wordt weggelaten en de gebruiker slechts één eSigner-certificaat voor het ondertekenen van code heeft, zal CodeSignTool dat standaard gebruiken. Als de gebruiker meer dan één code-ondertekeningscertificaat heeft, is deze parameter verplicht. (Verplicht)
- TOTP_GEHEIM: OAuth TOTP-geheim. U hebt toegang tot gedetailleerde informatie over: https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Verplicht)
- OMGEVING_NAME : 'TEST' of 'PROD' omgeving. (Verplicht)
Ingangen
- invoer_bestandspad: Pad van codeobject dat moet worden ondertekend. (Verplicht)
- output_dir_pad: Directory waar ondertekende code-object(en) zullen worden geschreven. Als output_path wordt weggelaten, wordt het bestand gespecificeerd in -file_path overschreven door het ondertekende bestand.
Maak een project op visualstudio.com
Maak een nieuw .yml-bestand in uw code-editor
Integratietriggers en omgevingsvariabelen instellen
Doorlopende integratietriggers
op gang brengen:
- geen
Definieert omgevingsvariabelen globaal. De eigenschap op taakniveau overschrijft globale variabelen
variabelen:
buildConfiguratie: 'Release'
Groepeer taken in fasen
Schrijf de stappen voor de bouwfase. Alle taken in één fase moeten worden voltooid voordat de volgende fase wordt uitgevoerd.
stadia:
– fase: bouwen
# Wanneer de workflow wordt uitgevoerd, is dit de naam die wordt vastgelegd
Geïmporteerd: bouwen
banen:
- functie:
zwembad:
Taak uitvoeren op Windows VM's
vmImage: 'windows-nieuwste'
stappen:
Installeer Dotnet 6.0.x
– taak: UseDotNet@2
Geïmporteerd: 'Installeer .NET Core SDK'
ingangen:
versie: '6.0.x'
performMultiLevelLookup: waar
includePreviewVersions: waar
Herstel Dotnet-project
– taak: DotNetCoreCLI@2
Geïmporteerd: herstellen
ingangen:
commando: 'herstellen'
Bouw een dotnet-project met Release-configuratie
– taak: DotNetCoreCLI@2
Geïmporteerd: bouwen
ingangen:
commando: bouwen
projecten: HelloWorld.csproj
argumenten: '–configuratie $(buildConfiguration)'
Directory's maken voor ondertekende artefacten
– powershell: Nieuw-Item -ItemType Directory -Pad ./artefacten
displayName: 'Mappen gemaakt voor artefacten'
Directory's maken voor ondertekende pakketten
– powershell: Nieuw-Item -ItemType Directory -Pad ./pakketten
displayName: 'Mappen voor pakketten gemaakt'
Kopieer artefact als ondertekeningspad
– powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll
displayName: "Kopieer gebouwde artefacten naar de map met pakketten"
Bewaar artefact om ondertekeningstaak te gebruiken
– taak: PublishBuildArtifacts@1
Geïmporteerd: 'Opslaan om te worden ondertekend artefact om te downloaden'
ingangen:
pathtoPublish: ./packages/HelloWorld.dll
artefactNaam: HelloWorld.dll
Schrijf de stappen voor de Sign-fase
– podium: Teken
# Wanneer de workflow wordt uitgevoerd, is dit de naam die wordt vastgelegd
Geïmporteerd: teken
banen:
- functie:
zwembad:
Taak uitvoeren op Ubuntu VM's
vmImage: “Ubuntu-nieuwste”
stappen:
Directory's maken voor ondertekende artefacten
– script: mkdir -p ./artefacten && mkdir -p ./pakketten
displayName: "Mappen gemaakt voor artefacten en pakketten"
Download het te ondertekenen artefact
– taak: DownloadPipelineArtifact@2
ingangen:
artefact: HelloWorld.dll
downloadPad: ./packages
Installeer Docker 17.09.0-ce
– taak: DockerInstaller@0
Geïmporteerd: Docker-installatieprogramma
ingangen:
dockerVersie: 17.09.0-ce
releaseType: stabiel
Docker Pull CodeSigner Docker-afbeelding
– script: docker pull ghcr.io/sslcom/codesigner:latest
Geïmporteerd: 'Docker Pull CodeSigner Docker-afbeelding'
Onderteken artefact met CodeSigner docker-afbeelding
– script: docker run -i –rm –dns 8.8.8.8 –netwerkhost –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output
-e GEBRUIKERSNAAM=$(USERNAME) -e WACHTWOORD=$(WACHTWOORD) -e CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)
-e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:laatste teken -input_file_path=/codesign/examples/HelloWorld.dll
-output_dir_path=/codesign/uitvoer
Geïmporteerd: 'Onderteken artefact met CodeSigner docker-afbeelding'
Gesigneerd artefact opslaan om te downloaden
– taak: PublishBuildArtifacts@1
Geïmporteerd: 'Getekend artefact opslaan om te downloaden'
ingangen:
pathtoPublish: ./artefacts/HelloWorld.dll
artefactNaam: HelloWorld.dll
Maak een nieuw .gitignore-bestand
Typ in:
bak
obj
.vscode
Typ op de berichtenbalk Create pipeline.yml en klik op de Plegen
Ga verder om op de . te klikken Wijzigingen synchroniseren
Ga naar visualstudio.com en klik op Repos op het dashboard
Vernieuw de pagina om het yml-bestand te zien
Klik Pijpleidingen op het dashboard
Klik vervolgens op Pijplijn maken
Klik op Azure opslagplaatsen Git
Selecteer uw YAML-bestand
Klik Variabelen knop gevolgd door Nieuwe variabele
Plaats de waarde voor elke omgevingsvariabele en klik op de OK
Klik op het + teken om elke variabele toe te voegen
Nadat u alle variabelen hebt ingevoerd, gaat u verder met het maken van uw pijplijn
Voer uw pijplijn uit
Klik Pijpleidingen op het dashboard. Klik op de drie stippen (meer opties) in uw pijplijn. Klik Pijplijn uitvoeren. Klik ten slotte op lopen knop.
Klik op Bouwen om de bouwfase te starten
Controleer of elke taak in de bouwfase succesvol is
Klik op de vervolgkeuzepijl naast Job om de status van elke build-taak te zien
Start de ondertekenfase door te klikken op Job
Controleer of elke stap in het ondertekeningsproces succesvol is
Controleer nogmaals of zowel de bouw- als de tekenfase succesvol zijn
Voorbeeld van Azure DevOps-pijplijn
Bekijk het voorbeeld van de Azure DevOps-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-azuredevops-sampleAndere integratiehandleidingen voor ondertekening op afstand
- Integratie van Cloud Code Signing met CircleCI
- Integratie van Cloud Code Signing met GitHub-acties
- Cloud Code Signing-integratie met GitLab CI
- Cloud Code Signing-integratie met Travis CI
- Integratie van Cloud Code Signing met Jenkins CI
- Cloud Code Signing-integratie met BitBucket
- Cloud Code Signing-automatisering met CI/CD-services
Oplossingen op maat nodig?
Met onze deskundige kennis en vijfsterrenondersteuningspersoneel staan we klaar en bereid om met u samen te werken aan aangepaste oplossingen of grote ondertekeningskortingen op ondernemingsniveau. Vul het onderstaande formulier in en we nemen contact met je op.