Integratie van Cloud Code Signing met Jenkins CI

Dit is een handleiding voor het automatisch ondertekenen van code op Jenkins met behulp van eSigner CodeSignTool.

CodeSignTool is een opdrachtregelprogramma dat geschikt is voor signeersessies met grote volumes 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 bedrijfscodes.

SSL.com's EV Code ondertekening Certificaten helpen uw code te beschermen tegen ongeoorloofde manipulatie en compromissen met het hoogste niveau van validatie, en zijn beschikbaar voor zo weinig als $ 249 per jaar.

KOOP UW SSL.COM EV CODE ONDERTEKENINGSCERTIFICAAT

Maak een Jenkins-bestand en definieer de pijplijn in uw code-editor

pijplijn {agent alle opties {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds()}

Stel de .NET-tool in op uw code-editor door Jenkins . te configureren

Klik op de Beheer Jenkins tabblad op uw Jenkins-dashboard.

Scroll naar beneden op de pagina en klik op Global Tool Configuration.

Scroll naar beneden en klik .NET SDK-installaties.

Kopieer de waarde voor .NET SDK en plak deze in uw code-editor.

tools { dotnetsdk "DOTNET_CORE_3.1.24" }

Ga naar plugins.jenkins.io en installeer de .NET SDK-plug-in

Onder Beheer Jenkins op je Dashboard, check Beheer plug-ins om te bevestigen of de .NET SDK-plug-in is geïnstalleerd.

Nadat u hebt bevestigd dat de plug-in is geïnstalleerd, gaat u terug naar .NET SDK-INSTALLATIES en zorgt u ervoor dat de juiste versie en releasedetails van de .NET SDK-plug-in zijn ingesteld. Ga verder om op de . te klikken Bespaar knop.

Stel de omgevingsvariabelen in op uw code-editor

omgeving { GEBRUIKERSNAAM = referenties('es-gebruikersnaam') // SSL.com account gebruikersnaam. WACHTWOORD = referenties ('es-wachtwoord') // SSL.com-accountwachtwoord. CREDENTIAL_ID = referenties('es-credential-id') // Referentie-ID voor ondertekening van certificaat. TOTP_SECRET = referenties('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-omgevingsnaam. Voor demo-account kan het 'TEST' zijn, anders is het 'PROD'}

U vindt de waarden voor elke variabele op uw Jenkins-dashboard onder: Beveiliging> Beheren Geloofsbrieven.

 

Stel de fasen in voor het maken van de artefactenmap, het ophalen van de docker-afbeelding, het bouwen van .NET en het ondertekenen van code voor het artefact

 

        1) Maak een Artifact Directory voor het opslaan van ondertekende en niet-ondertekende artefactbestanden.
 stage('Maak artefactenmap') { stappen { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages'} }
        2) Haal de Codesigner Docker-afbeelding uit het Github-register.
stage('Docker Pull Image') { stappen { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Bouw een dotnet-project of -oplossing en al zijn afhankelijkheden. Nadat het dll- of exe-bestand is gemaakt, kopieert u naar de map 'packages' om te ondertekenen.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }
        4) Dit is de stap waarin de gemaakte DLL-bestanden (artefact) worden ondertekend met CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { stappen { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/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 sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { altijd { archiveArtifacts artefacten: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }

SSL.com's EV Code ondertekening Certificaten helpen uw code te beschermen tegen ongeoorloofde manipulatie en compromissen met het hoogste niveau van validatie, en zijn beschikbaar voor zo weinig als $ 249 per jaar.

KOOP UW SSL.COM EV CODE ONDERTEKENINGSCERTIFICAAT

Maak een Github-repo

Kopieer elk van de push-opdrachtcomponenten op Github.

Schrijf de opdrachten op een nieuwe terminal op uw code-editor om de code te pushen.

Nadat je de code hebt gepusht, ga je naar je Github-account en kopieer je de URL-link van je project.

Ga naar uw Jenkins-account en klik op de Maak een baan link.

Kies Multibranch-pijpleiding, stel de naam voor uw project in en klik op de OK knop.

Onder Branchebronnenselecteer Git en plak de URL-link van uw Github-project.

Blader naar beneden naar Multibranch-pijplijntriggers scannen. Vink het vakje aan voor Periodiek, indien niet anders uitgevoerd. U kunt selecteren 2 minuten.

Klik op de Bespaar knop.

Ga terug naar je Jenkins-account, klik op je project en bevestig of de pijplijn is gestart

Klik op uw Jenkins-project en selecteer Nu multibranch-pijpleiding scannen op het Dashboard.

Klik Console-uitgang

Scroll naar beneden en controleer of het ondertekenen van de code gelukt is

Gehele script

Opmerking: zorg ervoor dat u typografische fouten of foutieve regeleinden in het script corrigeert, zodat het ondertekeningsproces soepel verloopt.

Definieer de pijplijn

pijplijn {agent alle opties {buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds()}

Bouwtools installeren

tools {dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk}

Een omgevingsvariabele maken

omgeving { GEBRUIKERSNAAM = referenties('es-gebruikersnaam') // SSL.com account gebruikersnaam. WACHTWOORD = inloggegevens ('es-wachtwoord') // SSL.com-accountwachtwoord. CREDENTIAL_ID = referenties('es-credential-id') // Referentie-ID voor ondertekening van certificaat. TOTP_SECRET = referenties('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-omgevingsnaam. Voor demo-account kan het 'TEST' zijn, anders is het 'PROD'}

Script voor de bouw- en ondertekenfase

stages { // 1) Maak een Artifact Directory om ondertekende en niet-ondertekende artefactbestanden op te slaan / 2) Haal Codesigner Docker Image uit Github Registry stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest'}} // 3) Bouw een dotnet-project of -oplossing en alle zijn afhankelijkheden. // Nadat het dll- of exe-bestand is gemaakt, kopieert u het naar de map 'packages' voor ondertekeningsfase ('Build Dotnet') { stappen { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/ Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) Dit is de stap waarin de gemaakte DLL-bestanden (artefacten) worden ondertekend met CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { stappen { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- volume ${WORKSPACE}/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 sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { altijd { archiveArtifacts artefacten: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
U kunt verwijzen naar de SSL.com Github-repository die de broncodes van de docker-afbeelding bevat en beschrijft hoe deze te gebruiken: https://github.com/SSLcom/ci-images 

Voorbeeld Jenkins-pijpleiding

Bekijk de voorbeeld Jenkins-pijplijn waarop we hebben gemaakt github.com/SSLcom/codesigner-jenkins-sample

Andere integratiehandleidingen voor ondertekening op afstand

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.

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com

Blijf geïnformeerd en veilig

SSL.com is een wereldleider op het gebied van cyberbeveiliging, PKI en digitale certificaten. Meld u aan om het laatste branchenieuws, tips en productaankondigingen te ontvangen van SSL.com.

We willen graag uw feedback

Vul onze enquête in en laat ons uw mening over uw recente aankoop weten.