Pilvikoodin allekirjoituksen integrointi Jenkins CI:n kanssa

Tämä on opas automaattisen koodin allekirjoituksen tekemiseen Jenkinsissä eSigner CodeSignToolin avulla.

CodeSignTool on komentorivityökalu, joka soveltuu suuren volyymin allekirjoituksiin ja integroituu saumattomasti eri CI/CD-alustoihin. Se on osa eSigneriä: etäallekirjoituspalveluamme, joka tarjoaa tehokkaan, turvallisen ja käyttäjäystävällisen lähestymistavan yrityskoodien allekirjoittamiseen.

SSL.com n EV Koodin allekirjoittaminen Sertifikaatit auttaa suojaamaan koodiasi luvattomalta muuttamiselta ja vaarantumiselta korkeimmalla varmennustasolla, ja ne ovat saatavilla niin vähän kuin $ 249 vuodessa.

OSTA SSL.COM EV-KOODIN ALLEKIRJOITUSVARMISTEESI

Luo Jenkins-tiedosto ja määritä liukuhihna koodieditorissasi

pipeline { agentti kaikki vaihtoehdot { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Aseta .NET-työkalu koodieditoriin määrittämällä Jenkins

Valitse Jenkinsin hallinta -välilehti Jenkins-hallintapaneelissa.

Vieritä sivua alas ja napsauta Global Tool Configuration.

Selaa alaspäin ja napsauta .NET SDK -asennukset.

Kopioi .NET SDK:n arvo ja liitä se koodieditoriin.

työkalut { dotnetsdk "DOTNET_CORE_3.1.24" }

Siirry osoitteeseen plugins.jenkins.io ja asenna .NET SDK -laajennus

Alle Jenkinsin hallinta Tarkista hallintapaneelissasi Hallinnoi lisäosia vahvistaaksesi, onko .NET SDK -laajennus asennettu.

Kun olet varmistanut, että laajennus on asennettu, palaa kohtaan .NET SDK INSTALLATIONS ja varmista, että .NET SDK -laajennuksen oikea versio ja julkaisutiedot on asetettu. Jatka napsauttamalla Säästä painiketta.

Aseta ympäristömuuttujat koodieditorissasi

Environment { KÄYTTÄJÄNIMI = credentials('es-username') // SSL.com-tilin käyttäjänimi. PASSWORD = credentials('es-password') // SSL.com-tilin salasana. CREDENTIAL_ID = credentials('es-crendential-id') // Tunnus varmenteen allekirjoittamiseen. TOTP_SECRET = credentials('es-totp-secret') // OAuthin TOTP-salaisuus (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-ympäristön nimi. Demotilille se voi olla "TESTI", muuten se on "PROD" }

Löydät kunkin muuttujan arvot Jenkins-koontinäyttösi alta Suojaus> hoitaa Valtakirjaa.

 

Aseta vaiheet artefaktihakemiston luomiseen, telakointikuvan poistamiseen, .NETin rakentamiseen ja artefaktin koodiallekirjoitukseen

 

        1) Luo artefaktihakemisto tallennetuille ja allekirjoittamattomille artefaktitiedostoille.
 stage('Luo artefaktihakemisto') { steps { sh 'mkdir ${TYÖPAIKKA}/artefacts' sh 'mkdir ${TYÖPAIKKA}/paketit' } }
        2) Vedä Codesigner Docker -kuva Githubin rekisteristä.
stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Rakenna dotnet-projekti tai -ratkaisu ja kaikki sen riippuvuudet. Kun dll- tai exe-tiedosto on luotu, kopioi "paketit"-kansioon allekirjoittamista varten.
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) Tämä on vaihe, jossa luodut DLL-tiedostot (artefaktit) allekirjoitetaan CodeSignToolilla.
stage('Allekirjoita ja tallenna Dotnet Core DLL -artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${TYÖPAIKKA}/paketit:/codesign/examples -- volyymi ${WORKSPACE}/artefacts:/codesign/output -e KÄYTTÄJÄNIMI=${KÄYTTÄJÄNIMI} -e SALASANA=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:viimeisin merkki -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { aina { archiveArtifacts artifacts: "artifacts/Succ.dll",helloWorfull:d } } } } }

SSL.com n EV Koodin allekirjoittaminen Sertifikaatit auttaa suojaamaan koodiasi luvattomalta muuttamiselta ja vaarantumiselta korkeimmalla varmennustasolla, ja ne ovat saatavilla niin vähän kuin $ 249 vuodessa.

OSTA SSL.COM EV-KOODIN ALLEKIRJOITUSVARMISTEESI

Luo Github-repo

Kopioi jokainen push-komentokomponentti Githubissa.

Kirjoita komennot koodieditorin uuteen päätteeseen, jotta koodi työnnetään.

Kun olet painanut koodin, siirry Github-tilillesi ja kopioi projektisi URL-linkki.

Siirry Jenkins-tilillesi ja napsauta Luo työpaikka linkki.

Valita Monihaarainen putkisto, aseta projektillesi nimi ja napsauta OK painiketta.

Alle Haaralähteetvalitse mennä ja liitä Github-projektisi URL-linkki.

Vieritä alaspäin Scan Multibranch Pipeline Triggers. Valitse valintaruutu Ajoittain, ellei muuten. Voit valita 2 minuuttia.

Valitse Säästä painiketta.

Palaa Jenkins-tilillesi, napsauta projektiasi ja vahvista, onko putkisto alkanut

Napsauta Jenkins-projektiasi ja valitse Skannaa Multibranch Pipeline nyt kojelaudassa.

Napauta Konsolin ulostulo

Vieritä alas ja tarkista, onnistuiko koodin allekirjoitus

Koko Script

Huomautus: Muista korjata kirjoitusvirheet tai virheelliset rivinvaihdot komentosarjassa, jotta allekirjoitusprosessi sujuu kitkattomasti.

Määrittele putkisto

pipeline { agentti kaikki vaihtoehdot { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Asenna Build Tools

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

Luo ympäristömuuttuja

Environment { KÄYTTÄJÄNIMI = credentials('es-username') // SSL.com-tilin käyttäjänimi. PASSWORD = credentials('es-password') // SSL.com-tilin salasana. CREDENTIAL_ID = credentials('es-crendential-id') // Tunnus varmenteen allekirjoittamiseen. TOTP_SECRET = credentials('es-totp-secret') // OAuthin TOTP-salaisuus (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com-ympäristön nimi. Demotilille se voi olla "TESTI", muuten se on "PROD" }

Käsikirjoitus rakentamis- ja merkkivaiheisiin

vaiheet { // 1) Luo artefaktihakemisto kaupan allekirjoitetuille ja allekirjoittamattomille artefaktitiedostoille stage('Luo artefaktihakemisto') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Vedä Codesigner Docker -kuva Githubin rekisterivaiheesta ('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Luo dotnet-projekti tai -ratkaisu ja kaikki sen riippuvuuksia. // Kun dll- tai exe-tiedosto on luotu, kopioi paketit-kansioon allekirjoitusvaihe('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) Tämä on vaihe, jossa luodut DLL-tiedostot (artefakti) allekirjoitetaan CodeSignToolilla. stage('Allekirjoita ja tallenna Dotnet Core DLL -artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${TYÖPAIKKA}/paketit:/codesign/examples -- volyymi ${WORKSPACE}/artefacts:/codesign/output -e KÄYTTÄJÄNIMI=${KÄYTTÄJÄNIMI} -e SALASANA=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:viimeisin merkki -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { aina { arkistoArtifacts artifacts: "artifacts/Succ.dll",helloWorfull:d } } } } }
Voit viitata SSL.com Github-arkisto, joka sisältää docker-kuvan lähdekoodit ja kuvaa sen käytön: https://github.com/SSLcom/ci-images 

Esimerkki Jenkins Pipeline

Katso näyte Jenkins-putkista, jonka olemme luoneet github.com/SSLcom/codesigner-jenkins-sample

Muut etäallekirjoituksen integrointioppaat

Tarvitsetko mukautettuja ratkaisuja? 

Asiantuntijaosaamisemme ja viiden tähden tukihenkilöstömme avulla olemme valmiita ja halukkaita työskentelemään kanssasi räätälöityjen ratkaisujen tai yritystason suurten allekirjoitusalennusten parissa. Täytä alla oleva lomake, niin olemme sinuun yhteydessä.

Tilaa SSL.com: n uutiskirje

Älä missaa uusia SSL.com -artikkeleita ja päivityksiä

Pysy ajan tasalla ja turvassa

SSL.com on maailman johtava kyberturvallisuuden johtaja, PKI ja digitaaliset sertifikaatit. Rekisteröidy saadaksesi viimeisimmät alan uutiset, vinkit ja tuoteilmoitukset SSL.com.

Otamme mielellämme palautetta vastaan

Vastaa kyselyymme ja kerro meille mielipiteesi viimeaikaisesta ostoksestasi.