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.
Bereid de componenten van de workflow voor (.NET Code DLL-ondertekening)
- Maak een .circleci-map
Maak op uw werkruimte voor codeondertekening een .circleci-map. Maak eronder een config.yml-bestand.
- Stel de CI-versie in
versie: 2.1
- Oproepen oproepen via workflows. Werkstromen orkestreren een reeks taken die moeten worden uitgevoerd. De taken voor deze pijplijn worden hieronder geconfigureerd:
Siehe: https://circleci.com/docs/2.0/configuration-reference/#workflows
werkstromen:
- Schrijf de naam van de werkstroom.
punt net:
- Binnen de workflow definieert u de taken die u wilt uitvoeren.
jobs: - bouwen - teken: vereist: - bouwen
Definieer de bouwfase
- Definieer een taak die later in een workflow moet worden aangeroepen.
(Zie: https://circleci.com/docs/2.0/configuration-reference/#jobs)
banen: bouwen:
- Een omgevingsvariabele maken
- Omgevingsvariabelen worden gebruikt om de voorbeelden leesbaarder te maken. In de bovenstaande schermafbeelding van een voorbeeld van een ondertekeningsworkflow zijn de PROJECT_NAME, PROJECT_VERSION en DOTNET_VERSION optioneel weggelaten. Zelfs met deze omissies kan het ondertekenen nog steeds doorgaan.
omgeving: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WERKRUIMTE: /home/circleci/project
- Definieer een Docker-uitvoerder: (https://circleci.com/docs/2.0/executor-types/)
# U kunt een afbeelding van Dockerhub specificeren of een van onze gemaksafbeeldingen van CircleCI's Developer Hub gebruiken.
docker: - afbeelding: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Plaats de werkmap voor de taak
werkmap: /home/circleci/project
- Stappen toevoegen aan de taak
Zie: https://circleci.com/docs/2.0/configuration-reference/#steps
stappen:
- Bekijk de broncode zodat de workflow er toegang toe heeft.
- uitchecken
- Maak een artefactmap om ondertekende en niet-ondertekende artefactbestanden op te slaan
- run: naam: Create Artifacts Directory commando: | mkdir -p ${WORKSPACE}/artefacten mkdir -p ${WORKSPACE}/pakketten
- Bouw een dotnet-project of -oplossing en al zijn afhankelijkheden.
- run: naam: Build Dotnet Project Commando: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release
- Kopieer artefact naar map met artefacten
- In deze schriftelijke ondertekeningsvoorbeeldworkflow zijn meerdere projecttypen gemaakt. Dit is de reden waarom bestanden van verschillende projecttypes werden bewaard door submappen te maken. Voor Dotnet-projecten is een submap gemaakt met de naam 'dotnet'. In de demo-screenshot hierboven was het niet nodig om een submap met de naam 'dotnet' aan te maken, dus deze was niet opgenomen in het script.
- run: naam: Copy Artifacts commando: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll
- Houd het artefact in de map met artefacten voor ondertekening
- persist_to_workspace: root: . paden: - pakketten/*
Definieer de ondertekeningsfase
- Definieer de ondertekeningstaak
teken:
- Een omgevingsvariabele maken
- In de bovenstaande schermafbeelding is de sign-opdracht rechtstreeks in het sign-script gedefinieerd en niet onder omgevingsvariabelen. Bandere methoden kunnen correct ondertekenen met CircleCI.
- Omgevingsvariabelen worden gebruikt om de voorbeelden leesbaarder te maken. In de bovenstaande schermafbeelding van de voorbeeldworkflow zijn sommige variabelen optioneel niet opgenomen. Zelfs met deze omissies kan het ondertekenen nog steeds doorgaan.
omgeving: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: /home/circleci/project
- Plaats de werkmap voor de job op Circle-CI
werkmap: /home/circleci/project
- Artefactnaam voor ondertekening
- De waarde 'artefact-naam' is een optie voor meerdere projecten. De parameter 'artefact-naam' is toegevoegd zodat hetzelfde signeergedeelte voor alle projecttypes kan worden gebruikt. Aangezien het voorbeeld in de schermafbeelding gebaseerd is op een enkel project, was het niet nodig om het op te nemen.
parameters: artifact-name: type: string default: ''
- Definieer een docker-uitvoerder:
Zie voor aanvullende referentie: https://circleci.com/docs/2.0/executor-types/
U kunt een afbeelding van Dockerhub specificeren of een van onze gemaksafbeeldingen van CircleCI's Developer Hub gebruiken.
Zorg ervoor dat u de Docker-afbeeldingstag hieronder bijwerkt naar de openjdk-versie van uw toepassing.
Een lijst met beschikbare CircleCI Docker-gemaksafbeeldingen is hier beschikbaar: https://circleci.com/developer/images/image/cimg/openjdk
docker: - afbeelding: cimg/openjdk:17.0.3
- Stappen toevoegen aan de taak
Zie voor aanvullende referentie: https://circleci.com/docs/2.0/configuration-reference/#steps
stappen:
- Maak een artefactmap om ondertekende en niet-ondertekende artefactbestanden op te slaan
- run: naam: Create Artifacts Directory commando: | mkdir -p ${WORKSPACE}/artefacten mkdir -p ${WORKSPACE}/pakketten
- Bijvoegen aan Workspace om toegang te krijgen tot het artefactbestand
- attach_workspace: op: /home/circleci/project
- Schakel Docker voor CodeSigner in op Circle-CI
- setup_remote_docker: naam: Setup Remote Docker-versie: 19.03.13 docker_layer_caching: true
- Codesigner Docker-afbeelding uit Github-register halen
- run: naam: Docker Pull Image-opdracht: | docker pull ghcr.io/sslcom/codesigner: nieuwste docker pull alpine: 3.4
- Schrijf de stap waar het artefact zal worden ondertekend met CodeSignTool.
- voer uit: naam: Sign Artifact File-commando: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -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/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< parameters.artifact-name >>
- Schrijf de stap voor het uploaden van uw artefact vanuit uw workflow, zodat u gegevens tussen taken kunt delen en gegevens kunt opslaan zodra een workflow is voltooid
- store_artifacts: naam: Upload ondertekende bestanden pad: /home/circleci/project/artifacts/<< parameters.artifact-name >> bestemming: << parameters.artifact-name >>
Maak een nieuwe repository op de opdrachtregel
Kopieer de push-opdrachtcomponenten van de locatie van uw project op uw GitHub-account
Voeg alle push-commandocomponenten toe aan uw editor
Zet een project op CircleCI op met behulp van de repository die is geïntegreerd in GitHub
Definieer alle omgevingsvariabelen
Terwijl het project loopt, klikt u op de knop Projectinstellingen gevolgd door Omgevingsvariabelen om de variabelen te definiëren
Plaats de waarden voor elke variabele
Klik op de Omgevingsvariabele toevoegen om de namen en waarden van alle variabelen die nodig zijn voor het project toe te voegen.
Wacht tot het project is gebouwd
Klik op Aanhoudend om werkruimte
Wacht even tot het werkruimtearchief succesvol is geüpload.
Klik op de tekenknop
Wacht tot de Remote Docker is ingesteld
Het kan meer dan een minuut duren, afhankelijk van de grootte van het bestand
Wacht tot de artefacten zijn ondertekend
Klik Artifacts tab
Als u klikt Artifacts, kunt u het bestand zien waarvan u de code succesvol hebt ondertekend. U wordt ook door CircleCI op de hoogte gebracht van de succesvolle ondertekening van de code.
Voorbeeld CircleCI-pijplijn
Bekijk het voorbeeld van de CircleCI-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-circleci-sampleAndere integratiehandleidingen voor CI/CD Remote Signing
- Integratie van Cloud Code Signing met GitHub-acties
- Cloud Code Signing-integratie met GitLab CI
- Integratie van Cloud Code Signing met Jenkins CI
- Cloud Code Signing-integratie met Travis CI
- Cloud Code Signing-integratie met Azure DevOps
- 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.