Cloud Code Signing-integration med Jenkins CI

Det här är en guide om hur man gör automatisk kodsignering på Jenkins med hjälp av eSigner CodeSignTool.

CodeSignTool är ett kommandoradsverktyg som är lämpligt för signering av hög volym och sömlöst integreras med olika CI/CD-plattformar. Det är en del av eSigner: vår fjärrsigneringstjänst som erbjuder en effektiv, säker och användarvänlig metod för företagskodsignering.

SSL.com s EV Kodsignering Certifikat skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år.

KÖP DITT CERTIFIKAT FÖR SSL.COM EV CODE SIGNERING

Skapa en Jenkins-fil och definiera pipelinen i din kodredigerare

pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Ställ in .NET-verktyget på din kodredigerare genom att konfigurera Jenkins

Klicka på Hantera Jenkins fliken på din Jenkins instrumentpanel.

Rulla ner på sidan och klicka på Global Tool Configuration.

Bläddra ner och klicka .NET SDK-installationer.

Kopiera värdet för .NET SDK och klistra in det i din kodredigerare.

verktyg { dotnetsdk "DOTNET_CORE_3.1.24" }

Gå till plugins.jenkins.io och installera .NET SDK-plugin

Enligt Hantera Jenkins på din instrumentpanel, kontrollera Hantera plugins för att bekräfta om plugin-programmet .NET SDK har installerats.

Efter att ha bekräftat att plugin-programmet har installerats, gå tillbaka till .NET SDK-INSTALLATIONER och se till att rätt version och versionsinformation för .NET SDK-plugin är inställd. Fortsätt att klicka på Save knapp.

Ställ in miljövariabler på din kodredigerare

miljö { USERNAME = credentials('es-username') // SSL.com-kontots användarnamn. PASSWORD = credentials('es-password') // SSL.com-kontolösenord. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID för signering av certifikat. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Miljönamn. För demokonto kan det vara "TEST" annars blir det "PROD" }

Du hittar värdena för varje variabel på din Jenkins instrumentpanel under Säkerhet> hantera Referenser.

 

Ställ in stegen för att skapa artefaktkatalog, dra docker-bild, bygga .NET och kodsignera artefakten

 

        1) Skapa artefaktkatalog för lagra signerade och osignerade artefaktfiler.
 stage('Skapa artefakterkatalog') { steg { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/paket' } }
        2) Dra Codesigner Docker Image från Github Registry.
stage('Docker Pull Image') { steg {sh 'docker pull ghcr.io/sslcom/codesigner:latest'} }
        3) Bygg ett dotnet-projekt eller -lösning och alla dess beroenden. Efter att dll- eller exe-filen har skapats, kopiera till mappen "paket" för signering.
stage('Build Dotnet') { steg { 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) Detta är steget där de skapade DLL-filerna (artefakt) kommer att signeras med CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volym ${WORKSPACE}/paket:/codesign/examples -- volym ${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:senaste tecken -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } inlägg { alltid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }

SSL.com s EV Kodsignering Certifikat skydda din kod från obehörig manipulering och kompromissa med den högsta nivån av validering, och är tillgängliga för så lite som $ 249 per år.

KÖP DITT CERTIFIKAT FÖR SSL.COM EV CODE SIGNERING

Skapa en Github-repo

Kopiera var och en av push-kommandokomponenterna på Github.

Skriv kommandona på en ny terminal på din kodredigerare för att trycka på koden.

Efter att ha tryckt på koden, gå till ditt Github-konto och kopiera URL-länken till ditt projekt.

Fortsätt till ditt Jenkins-konto och klicka på Skapa ett jobb länken.

Välja Flergrenad rörledning, ställ in namnet på ditt projekt och klicka på OK knapp.

Enligt Filialkällor, Välj  och klistra in URL-länken till ditt Github-projekt.

Bläddra ner till Scan Multibranch Pipeline Triggers. Markera rutan för Periodvis om inte annat kör. Du kan välja 2 minuter.

Klicka på Save knapp.

Gå tillbaka till ditt Jenkins-konto, klicka på ditt projekt och bekräfta om pipelinen har startat

Klicka på ditt Jenkins-projekt och välj Skanna multibranch pipeline nu på instrumentpanelen.

Klicka Konsolutgång

Rulla ned och kontrollera om kodsigneringen lyckas

Hela manuset

Obs: Se till att korrigera typografiska fel eller felaktiga radbrytningar i skriptet så att signeringsprocessen går smidigt.

Definiera pipelinen

pipeline { agent any options { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Installera byggverktyg

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

Skapa en miljövariabel

miljö { USERNAME = credentials('es-username') // SSL.com-kontots användarnamn. PASSWORD = credentials('es-password') // SSL.com-kontolösenord. CREDENTIAL_ID = credentials('es-crendential-id') // Credential ID för signering av certifikat. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Miljönamn. För demokonto kan det vara "TEST" annars blir det "PROD" }

Skript för bygg- och skyltstadierna

steg {// 1) Skapa artefaktkatalog för butikssignerade och osignerade artefaktfiler stage('Skapa artefaktkatalog') { steg { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/paket' } } / / 2) Dra Codesigner Docker Image från Github Registry scenen ('Docker Pull Image') { steg { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Bygg ett dotnet-projekt eller -lösning och allt dess beroenden. // Efter att den har skapats dll- eller exe-fil, kopiera till 'packages'-mappen för signering ('Build Dotnet') { steg { 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) Detta är steget där de skapade DLL-filerna (artefakt) kommer att signeras med CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --nätverksvärd --volym ${WORKSPACE}/paket:/codesign/examples -- volym ${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:senaste tecken -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } inlägg { alltid { archiveArtifacts artifacts: "artifacts/HelloWorld.dll", } } } } }
Du kan hänvisa till SSL.com Github repository som innehåller källkoderna för docker-bilden och beskriver hur man använder den: https://github.com/SSLcom/ci-images 

Prov Jenkins Pipeline

Kolla in provet Jenkins pipeline vi har skapat på github.com/SSLcom/codesigner-jenkins-sample

Andra guider för integrering av fjärrsignering

Behöver du anpassade lösningar? 

Med vår expertkunskap och femstjärniga supportpersonal är vi redo och villiga att arbeta med dig på skräddarsydda lösningar eller rabatter på stora volymer av signering på företagsnivå. Fyll i formuläret nedan så hör vi av oss.

Prenumerera på SSL.coms nyhetsbrev

Missa inte nya artiklar och uppdateringar från SSL.com

Håll dig informerad och säker

SSL.com är en global ledare inom cybersäkerhet, PKI och digitala certifikat. Registrera dig för att få de senaste branschnyheterna, tipsen och produktmeddelanden från SSL.com.

Vi vill gärna ha din feedback

Följ vår undersökning och låt oss veta vad du tycker om ditt senaste köp.