en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

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 ongeautoriseerde manipulatie en compromittering met het hoogste validatieniveau, en zijn beschikbaar voor slechts $ 249 per jaar. Je kan ook gebruik uw EV Code Signing-certificaat op schaal in de cloud met eSigner.

BESTEL NU

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 } } } } }
 

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

environment {

        USERNAME          = credentials('es-username')       // SSL.com account username.

        PASSWORD          = credentials('es-password')       // SSL.com account password.

        CREDENTIAL_ID     = credentials('es-crendential-id') // Credential ID for signing certificate.

        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 Environment Name. For Demo Account It can be 'TEST' otherwise it will be '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 } } } } }

Sample Jenkins Pipeline

Check out the sample Jenkins pipeline we have created on github.com/SSLcom/codesigner-jenkins-sample

Andere integratiehandleidingen voor ondertekening op afstand

Neem voor informatie over een eSigner-abonnement en certificaten voor het ondertekenen van codes, inclusief oplossingen voor grote volumes en op maat  of vul onderstaand formulier in.  

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com