Integrace cloudového podepisování kódu s Jenkins CI

Toto je průvodce, jak provádět automatické podepisování kódu na Jenkins pomocí eSigner CodeSignTool.

CodeSignTool je nástroj příkazového řádku, který je vhodný pro velkoobjemové podepisování a bezproblémově se integruje s různými platformami CI/CD. Tvoří součást eSigner: naší služby vzdáleného podepisování, která nabízí efektivní, bezpečný a uživatelsky přívětivý přístup k podepisování podnikového kódu.

SSL.com EV Podepisování kódu Certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitováním s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok.

KUPTE SI SVŮJ CERTIFIKÁT PODPISU KÓDU SSL.COM EV

Vytvořte soubor Jenkins a definujte kanál v editoru kódu

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

Nastavte nástroj .NET ve svém editoru kódu konfigurací Jenkinse

Klepněte na tlačítko Spravujte Jenkinsa na hlavním panelu Jenkins.

Přejděte na stránce dolů a klikněte na Global Tool Configuration.

Přejděte dolů a klepněte na tlačítko Instalace .NET SDK.

Zkopírujte hodnotu pro .NET SDK a vložte ji do editoru kódu.

nástroje { dotnetsdk "DOTNET_CORE_3.1.24" }

Přejděte na adresu plugins.jenkins.io a nainstalujte si plugin .NET SDK

Pod Spravujte Jenkinsa na hlavním panelu, zkontrolujte Spravovat pluginy pro potvrzení, zda byl nainstalován plugin .NET SDK.

Po potvrzení, že byl plugin nainstalován, přejděte zpět na INSTALACE .NET SDK a ujistěte se, že je nastavena správná verze a podrobnosti o vydání pluginu .NET SDK. Pokračujte kliknutím na Uložit .

Nastavte proměnné prostředí v editoru kódu

prostředí { USERNAME = credentials('es-username') // uživatelské jméno účtu SSL.com. PASSWORD = credentials('es-password') // heslo účtu SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // ID pověření pro podpis certifikátu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Název prostředí .com. Pro demo účet může být 'TEST', jinak to bude 'PROD' }

Hodnoty pro každou proměnnou najdete na svém ovládacím panelu Jenkins níže Zabezpečení> Řídit Pověření.

 

Nastavte fáze pro vytváření adresáře artefaktů, stahování obrazu dockeru, vytváření .NET a kód podepisování artefaktu

 

        1) Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů.
 stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }
        2) Stáhněte obrázek Codesigner Docker z registru Github.
stage('Docker Pull Image') { kroky { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Vytvořte projekt nebo řešení dotnet a všechny jeho závislosti. Po vytvoření souboru dll nebo exe zkopírujte do složky 'packages' pro podepsání.
stage('Build Dotnet') { kroky { 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) Toto je krok, kdy budou vytvořené soubory DLL (artefakt) podepsány pomocí CodeSignTool.
stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- svazek ${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' } příspěvek { vždy { archiveArtifacts artifacts: "artifacts/HelloSuccessful",: onlyIfWorld.dll", } } } } }

SSL.com EV Podepisování kódu Certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitováním s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok.

KUPTE SI SVŮJ CERTIFIKÁT PODPISU KÓDU SSL.COM EV

Vytvořte repozitář Github

Zkopírujte každou z komponent příkazu push na Github.

Zapište příkazy na nový terminál ve svém editoru kódu, aby se kód vložil.

Po odeslání kódu přejděte na svůj účet Github a zkopírujte odkaz URL vašeho projektu.

Pokračujte ke svému účtu Jenkins a klikněte na Vytvořte práci odkaz.

Vybrat Vícevětví potrubí, nastavte název projektu a klepněte na OK .

Pod Pobočkové zdrojevyberte Git a vložte odkaz URL svého projektu Github.

Přejděte dolů na Skenujte spouštěče vícevětvového potrubí. Zaškrtněte políčko pro Pravidelně, pokud není jinak spuštěn. Můžete vybrat 2 minut.

Klepněte na tlačítko Uložit .

Vraťte se ke svému účtu Jenkins, klikněte na svůj projekt a potvrďte, zda potrubí začalo

Klikněte na svůj projekt Jenkins a vyberte Skenujte potrubí s více pobočkami nyní na Dashboard.

klikněte Výstup konzoly

Přejděte dolů a zkontrolujte, zda je podepsání kódu úspěšné

Celý skript

Poznámka: Ujistěte se, že jste ve skriptu opravili typografické chyby nebo chybné konce řádků, aby proces podepisování probíhal hladce.

Definujte potrubí

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

Nainstalujte nástroje Build Tools

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

Vytvořte proměnnou prostředí

prostředí { USERNAME = credentials('es-username') // uživatelské jméno účtu SSL.com. PASSWORD = credentials('es-password') // heslo účtu SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // ID pověření pro podpis certifikátu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Název prostředí .com. Pro demo účet může být 'TEST', jinak to bude 'PROD' }

Skript pro fáze Build a Sign

stage { // 1) Vytvořit adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů stage('Create artifacts directory') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Pull Codesigner Docker Image z Github Registry stage('Docker Pull Image') { kroky { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Vytvořte dotnet projekt nebo řešení a všechny jeho závislosti. // Po vytvoření dll nebo exe souboru zkopírujte do složky 'packages' pro fázi podepisování ('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) Toto je krok, kdy budou vytvořené soubory DLL (artefakty) podepsány pomocí CodeSignTool. stage('Sign and Save Dotnet Core DLL Artifact') { steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- svazek ${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' } příspěvek { vždy { archiveArtifacts artifacts: "artifacts/HelloSuccessful",: onlyIfWorld.dll", } } } } }
Můžete se obrátit na SSL.com Repozitář Github, který obsahuje zdrojové kódy obrazu dockeru a popisuje, jak jej používat: https://github.com/SSLcom/ci-images 

Ukázka Jenkinsova potrubí

Podívejte se na ukázkový Jenkinsův plynovod, na kterém jsme vytvořili github.com/SSLcom/codesigner-jenkins-sample

Další příručky integrace vzdáleného podepisování

Potřebujete vlastní řešení? 

S našimi odbornými znalostmi a pětihvězdičkovým podpůrným personálem jsme připraveni a ochotni s vámi spolupracovat na vlastních řešeních nebo slevách na velkoobjemové podpisy na podnikové úrovni. Vyplňte formulář níže a my se vám ozveme.

Přihlaste se k odběru zpravodaje SSL.com

Nenechte si ujít nové články a aktualizace z SSL.com

Zůstaňte informováni a zabezpečte se

SSL.com je světovým lídrem v oblasti kybernetické bezpečnosti, PKI a digitální certifikáty. Přihlaste se k odběru nejnovějších zpráv z oboru, tipů a oznámení o produktech SSL.com.

Budeme rádi za vaši zpětnou vazbu

Vyplňte náš průzkum a sdělte nám svůj názor na váš nedávný nákup.