Cloud Code Signing integráció CircleCI-vel

Ez az oktatóanyag bemutatja, hogyan integrálható az eSigner a CircleCI-vel az automatikus kódaláíráshoz.

Az eSigner az SSL.com felhőalapú kód-aláírási környezete. Az aláíró kulcsokat és tanúsítványokat az SSL.com biztonságosan tárolja a felhőben, és bármely internetre csatlakozó eszközről elérhetők aláírásra, így az eSigner a vállalati kódaláírás egyik legjobb platformja. Az eSigner eszközkészlet tartalmazza a CodeSignTool-t, amely a parancssori segédprogram a számára EV kód aláírása tanúsítványokat, és ideális automatizált aláírási folyamatok létrehozásához különféle folyamatos integrációs/folyamatos kézbesítési (CI/CD) platformokon, beleértve a CircleCI-t. 

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.

Készítse elő a munkafolyamat összetevőit (.NET-kód DLL-aláírás)

  1. Hozzon létre egy .circleci mappát

A kódaláírási munkaterületen hozzon létre a .circleci mappa. Alatta hozzon létre a config.yml fájl.

  1. Állítsa be a CI verziót
verzió: 2.1
 
  1.  Feladatok meghívása munkafolyamatokon keresztül. A munkafolyamatok összeállítják a futtatandó feladatokat. Az ehhez a folyamathoz tartozó feladatok az alábbiakban vannak konfigurálva

Lásd: https://circleci.com/docs/2.0/configuration-reference/#workflows

munkafolyamatok:
 
  1. Írja be a munkafolyamat nevét.
  dotnet:
 
  1. A munkafolyamaton belül meghatározhatja a futtatni kívánt jobokat.
 munkák: - építeni - aláírni: igényel: - építeni
 

Határozza meg az építési szakaszt

  1. Határozza meg a munkafolyamatban később meghívandó munkát.

 (Lásd: https://circleci.com/docs/2.0/configuration-reference/#jobs)

munkakörök: építkezés:

 

  1. Hozzon létre egy környezeti változót
  • Környezeti változókat használnak a minták olvashatóbbá tételére. Egy példa aláírási munkafolyamat fenti képernyőképen a PROJECT_NAME, a PROJECT_VERSION és a DOTNET_VERSION opcionálisan kimaradt. Az aláírás még ezekkel a kihagyásokkal is folytatódhat.  
  környezet: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 MUNKATERÜLET: /home/circleci/projekt

 

  1.  Docker végrehajtó meghatározása: (https://circleci.com/docs/2.0/executor-types/)

    # Megadhat egy képet a Dockerhubról, vagy használhatja a CircleCI fejlesztői központjából származó kényelmi képeink egyikét.

 dokkoló: - kép: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Helyezze el a munka munkakönyvtárát
  munkakönyvtár: /home/circleci/projekt

 

  1. Adjon hozzá lépéseket a munkához

    Lásd: https://circleci.com/docs/2.0/configuration-reference/#steps

  lépések:

 

  1.  Nézze meg a forráskódot, hogy a munkafolyamat hozzáférhessen.
    - pénztár

 

  1. Hozzon létre Műtermékkönyvtárat az aláírt és aláíratlan műtermékfájlok tárolásához
    - run: name: Create Artifacts Directory parancs: | mkdir -p ${WORKSPACE}/termékek mkdir -p ${WORKSPACE}/csomagok

 

  1.  Hozzon létre egy dotnet projektet vagy megoldást és annak összes függőségét.
      - futtatás: név: Build Dotnet Project Parancs: dotnet build dotnet/${PROJECT_NAME}.csproj -c kiadás

 

  1. Műtermék másolása a műtermékek könyvtárába
  • Ebben az írásos aláírási példa munkafolyamatban több projekttípus jött létre. Ez az oka annak, hogy a különböző projekttípusok fájljait almappák létrehozásával tárolták. A Dotnet projektek számára létrehoztak egy „dotnet” nevű almappát. A fenti bemutató képernyőképen nem kellett létrehozni egy „dotnet” nevű almappát, így ez nem szerepelt a szkriptben.
  - run: name: Artifacts másolása parancs: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Tartsa meg a műterméket a műtermékek könyvtárában aláírás céljából
  - persist_to_workspace: root: . útvonalak: - csomagok/*
 

Határozza meg az aláírási szakaszt

  1. Határozza meg az aláírási feladatot
 jel:

 

  1. Hozzon létre egy környezeti változót
  • 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 CircleCI-vel.
  • 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 bizonyos változók opcionálisan nem szerepeltek. Az aláírás még ezekkel a kihagyásokkal is folytatódhat.  
    környezet: ENVIRONMENT_NAME: PROD COMMAND: jel WORKSPACE: /home/circleci/projekt

 

  1.     Helyezze el a munka munkakönyvtárát a Circle-CI-n
 munkakönyvtár: /home/circleci/projekt

 

  1. Műterméknév az aláíráshoz
  • Az „artifact-name” érték több projekthez használható. Az „artifact-name” paraméter hozzáadásra került, így ugyanaz az aláíró rész használható minden projekttípushoz. Mivel a képernyőképen látható példa egyetlen projekten alapul, ezt nem kellett belefoglalni.
    paraméterek: műterméknév: típus: karakterlánc alapértelmezett: ''

 

  1. Docker végrehajtó meghatározása:

 További információért lásd: https://circleci.com/docs/2.0/executor-types/

       Megadhat egy képet a Dockerhubról, vagy használhatja a CircleCI fejlesztői központjából származó kényelmi képeink egyikét.

       Ügyeljen arra, hogy frissítse az alábbi Docker-képcímkét az alkalmazás openjdk verziójára.

       Az elérhető CircleCI Docker kényelmi képek listája itt érhető el: https://circleci.com/developer/images/image/cimg/openjdk

   docker: - kép: cimg/openjdk:17.0.3

 

  1. Adjon hozzá lépéseket a munkához

      További információért lásd: https://circleci.com/docs/2.0/configuration-reference/#steps

    lépések:

 

  1. Hozzon létre Műtermékkönyvtárat az aláírt és aláíratlan műtermékfájlok tárolásához
  - run: name: Create Artifacts Directory parancs: | mkdir -p ${WORKSPACE}/termékek mkdir -p ${WORKSPACE}/csomagok

 

  1. Csatolás a munkaterülethez a műtermékfájl eléréséhez
   - attach_workspace: at: /home/circleci/projekt

 

  1. A Docker for CodeSigner engedélyezése a Circle-CI-n
 - setup_remote_docker: név: A Remote Docker verziójának beállítása: 19.03.13 docker_layer_caching: true

 

  1. Húzza ki a Codesigner Docker képét a Github Registry-ből
        - futtatás: név: Docker Pull Image parancs: | docker pull ghcr.io/sslcom/codesigner:legújabb docker pull alpine:3.4

 

  1. Írja be azt a lépést, ahol a mellékterméket aláírja a CodeSignTool segítségével.
 - run: name: Sign Artifact File parancs: | docker Create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker Create -v /codesign/artifacts --name codesign-out alpin:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- out -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 ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ WORKSPACE}/artifacts/<< paraméterek.terméknév >>

 

  1. Írja be a műtermék feltöltésének lépését a munkafolyamatból, amely lehetővé teszi az adatok megosztását a munkák között, és az adatok tárolását a munkafolyamat befejezése után
    - store_artifacts: név: Aláírt fájlok feltöltésének elérési útja: /home/circleci/project/artifacts/<< paraméterek.terméknév >> cél: << paraméterek.terméknév >>
 

Hozzon létre egy új tárolót a parancssorban

Másolja ki a push parancs összetevőit a projekt helyéről a GitHub-fiókjában

Tartalmazza az összes push parancs összetevőt a szerkesztőben

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

Hozzon létre egy projektet a CircleCI-n a GitHubba integrált adattár segítségével

Határozza meg az összes környezeti változót

Amíg a projekt fut, kattintson a Projektbeállítások gombra, majd a Környezeti változók elemre a változók meghatározásához

Helyezze el az egyes változók értékeit

Kattintson az Környezeti változó hozzáadása gombot a projekthez szükséges összes változó nevének és értékének hozzáadásához.

Várja meg, amíg a projekt megépül

Kattintson a Megmarad a munkaterületre elemre

Várjon rövid ideig, amíg a munkaterület-archívum sikeresen feltöltődik.

Kattintson az aláírás gombra

Várja meg, amíg a Remote Docker be van állítva

A fájl méretétől függően ez egy percnél tovább tarthat

Várja meg a műtárgyak aláírását

Kattints Mesterséges lap

Ha rákattintasz Mesterséges, akkor láthatja a sikeresen kóddal aláírt fájlt. A sikeres kódaláírásról a CircleCI is értesít.

Megnézheti az SSL.com Github adattárat, amely tartalmazza a docker kép forráskódjait, és leírja, hogyan kell használni: https://github.com/SSLcom/ci-images

Minta CircleCI Pipeline

Tekintse meg az általunk létrehozott CircleCI-folyamat mintáját github.com/SSLcom/codesigner-circleci-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.