Cloud Code Signing integráció a GitLab CI-vel

Ez egy oktatóanyag arról, hogyan lehet automatikus kódaláírást végrehajtani a GitLab CI-n az eSigner CodeSignTool segítségével. 

A CodeSignTool egy biztonságos parancssori segédprogram, amely az eSigner részét képezi: felhőalapú kód-aláíró környezetünknek, amely a szoftverkiadók és -fejlesztők hasznára válik, mivel képes biztonságosan és hatékonyan végrehajtani a vállalati kódaláírást, nem bonyolult módon.  Az alábbi mintamunkafolyamat egy .NET DLL-kódot mutat, amelyet GitLab CI-n írnak alá az eSignerrel.

SSL.com-k EV Kód aláírás A tanúsítványok a legmagasabb szintű érvényesítés mellett segítenek megvédeni a kódot az illetéktelen manipulációtól és a kompromittálódástól, és mindössze $ 249 évente. Akkor is használja az EV Code Signing tanúsítványát a méretarányosan a felhőben az eSigner segítségével.

RENDELD MEG MOST

Környezeti változók

  • USERNAME: SSL.com-fiók felhasználóneve. (Kívánt)
  • JELSZÓ: SSL.com fiók jelszava (kötelező)
  • CREDENTIAL_ID: Hitelesítési adat azonosító a tanúsítvány aláírásához. Ha a credential_id kimarad, és a felhasználónak csak egy eSigner kód aláíró tanúsítványa van, a CodeSignTool alapértelmezés szerint ezt fogja használni. Ha a felhasználónak egynél több kódaláíró tanúsítványa van, akkor ez a paraméter kötelező. (Kívánt)
  • TOTP_SECRET: OAuth TOTP titkos. Részletes információkat a címen érhet el https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Kötelező)
  • ENVIRONMENT_NAME : 'TESZT' vagy 'PROD' környezet. (Kívánt)

Bemenetek

  • bemeneti_fájl_útvonala: Az aláírandó kódobjektum elérési útja. (Kívánt)
  • output_dir_path: Könyvtár, ahová az aláírt kódobjektumok íródnak. Ha a kimeneti_útvonal kimarad, a -file_path paraméterben megadott fájl felül lesz írva az aláírt fájllal.

.NET Code DLL aláírási példa munkafolyamat

Hozzon létre egy yml fájlt

Csoportosítsa a munkákat szakaszokba. Az egyik szakaszban lévő összes feladatot be kell fejezni a következő szakasz végrehajtása előtt.

szakaszai: - építés - jel
 

A környezeti változók globális meghatározása. A feladat szintű tulajdonság felülírja a globális változókat.

  • Környezeti változókat használnak a minták olvashatóbbá tételére. A példa munkafolyamatának fenti képernyőképen a PROJECT_NAME, a PROJECT_VERSION és a DOTNET_VERSION opcionálisan kimaradt. Az aláírás ezekkel a hiányosságokkal továbbra is folytatódhat.  
  • Az ENVIRONMENT_NAME alatt helyezze el a „TEST” értéket a teszt-aláíráshoz, és a „PROD”-t az élő aláíráshoz.
változók: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

Definiálja a Építési színpad

Az alábbiakban a dll melléktermék létrehozására vonatkozó feladat meghatározása található

build-dotnet:

 

  1. Határozza meg, hogy a munka melyik szakaszban fusson.
  szakasz: épít

 

  1. Adja meg a használni kívánt kép teljes nevét. Szükség esetén tartalmaznia kell a Registry részt.
 kép: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Határozza meg azokat a szkripteket, amelyeknek *a munka előtt* kell futniuk. Beállítható globálisan vagy munkánként.
before_script: - mkdir -p ${CI_PROJECT_DIR}/termékek - mkdir -p ${CI_PROJECT_DIR}/csomagok

 

  1. Határozza meg a Runner által végrehajtott Shell-szkripteket. DLL műtermék létrehozása
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c kiadás - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. Adja meg azon fájlok és könyvtárak listáját, amelyeket csatolni kell a feladathoz, ha az sikeres.
  • Az "expire_in' tulajdonság lehetővé teszi a fájl törlését egy bizonyos idő elteltével. Használata opcionális. Ez az oka annak, hogy a fenti példa munkafolyamat képernyőképe nem mutatja ezt a tulajdonságot.
melléktermékek: elérési utak: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 perc
 

Határozza meg a Jel szakaszt

Az alábbiakban a dll melléktermék aláírására vonatkozó feladat meghatározása található

sign-dotnet-artifacts:

 

  1. Határozza meg, hogy a munka melyik szakaszban fusson.
  szakasz: jel

 

  1. Adja meg a használni kívánt kép teljes nevét. Szükség esetén tartalmaznia kell a Registry részt.
 kép: docker:19.03.0

 

  1. Szolgáltatások meghatározása. Ez hasonló az „image” tulajdonsághoz, de a megadott szolgáltatásokat az „image” tárolóhoz kapcsolja.
szolgáltatások: - dokkoló:19.03.0-dind

 

  1. Környezeti változók meghatározása adott feladatokhoz.
  • A fenti képernyőképen a jel parancsot közvetlenül a jelszkriptben határozták meg, nem pedig a környezeti változók alatt. Bmás metódusok is tudnak helyesen aláírni a TravisCI-vel.
  változók: COMMAND: "jel"

 

  1. Határozza meg azokat a szkripteket, amelyeknek *a munka előtt* kell futniuk. Beállítható globálisan vagy munkánként.
  before_script: - mkdir -p ${CI_PROJECT_DIR}/termékek - mkdir -p ${CI_PROJECT_DIR}/csomagok

 

  1. Helyezze el a Runner által végrehajtott Shell-szkripteket. Írja alá a .NET dll mellékterméket a CodeSignTool Docker Image segítségével
script: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --hálózati gazdagép --kötet ${CI_PROJECT_DIR}/packages:/codesign/examples --kötet $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e KÖRNYEZET_NÉV={}ENVIRONMENT_NAME=$ ghcr.io/sslcom/codesigner:legújabb ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output

 

  1. Írja meg a parancsfájlt, amellyel megadhatja azon fájlok és könyvtárak listáját, amelyeket csatolni kell a feladathoz, ha az sikeres.
műtermékek: elérési utak: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 nap

 

  1. Adja meg a korábbi szakaszokból származó jobnevek listáját, amelyekből a műtermékeket be kell tölteni.
függőségek: - build-dotnet

SSL.com-k EV Kód aláírás A tanúsítványok a legmagasabb szintű érvényesítés mellett segítenek megvédeni a kódot az illetéktelen manipulációtól és a kompromittálódástól, és mindössze $ 249 évente. Akkor is használja az EV Code Signing tanúsítványát a méretarányosan a felhőben az eSigner segítségével.

RENDELD MEG MOST

Indítsa el az építési szakaszt

Hozzon létre egy adattárat

Tekintse meg a Gitlab parancssori utasításait az alábbi képernyőképen látható módon

Nyomja meg a mappát

Ehhez kattintson rá terminál menüben, majd utána Új terminál.

A projekt leküldéséhez írja be a push scriptet a termináljára 

Kattintson a Build gombra

A csővezeték elindítása után folytassa az építést

Ellenőrizze, hogy a felépítés sikeres-e  

Indítsa el a Sign Stage-et

Folytassa a műtárgy aláírásával

Erősítse meg, hogy a kódaláírás sikeres volt-e

Most letöltheti az aláírt fájlt

Tudod hivatkozni a SSL.com Github tárház, amely tartalmazza a docker kép forráskódjait, és leírja, hogyan kell használni: https://github.com/SSLcom/ci-images 

Minta Gitlab CI Pipeline

Tekintse meg az általunk létrehozott Gitlab CI mintafolyamatot github.com/SSLcom/codesigner-gitlabci-sample

Egyéb CI/CD távoli aláírás integrációs útmutatók

Egyedi megoldásokra van szüksége? 

Szakértői tudásunkkal és ötcsillagos támogató munkatársainkkal készen állunk arra, hogy együttműködjünk Önnel az egyedi megoldásokon vagy a vállalati szintű, nagy volumenű aláírási kedvezményeken. Töltse ki az alábbi űrlapot és felvesszük Önnel a kapcsolatot.

Feliratkozás az SSL.com hírlevelére

Ne hagyja ki az SSL.com új cikkeit és frissítéseit

Legyen tájékozott és biztonságos

SSL.com világelső a kiberbiztonság területén, PKI és digitális tanúsítványok. Iratkozzon fel, hogy megkapja a legújabb iparági híreket, tippeket és termékbejelentéseket SSL.com.

Örülnénk a visszajelzésének

Töltse ki felmérésünket, és ossza meg velünk véleményét legutóbbi vásárlásával kapcsolatban.