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

Tento tutoriál ukazuje, jak je eSigner integrován s CircleCI pro automatické podepisování kódu.

eSigner je cloudové prostředí SSL.com pro podepisování kódu. Podepisovací klíče a certifikáty jsou bezpečně hostovány v cloudu na SSL.com a lze k nim přistupovat pro podepisování z jakéhokoli zařízení připojeného k internetu, čímž se eSigner stává jednou z nejlepších platforem pro podepisování podnikového kódu. Sada nástrojů eSigner obsahuje CodeSignTool, což je a nástroj příkazového řádku pro Podepisování kódu EV certifikáty a je ideální pro vytváření automatizovaných procesů podepisování v různých platformách Continuous Integration/Continuous Delivery (CI/CD), včetně CircleCI. 

SSL.com EV Podepisování kódu certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitací s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok. Můžete také používejte certifikát EV Code Signing ve velkém měřítku v cloudu pomocí eSigner.

OBJEDNAT TEĎ

Proměnné prostředí

  • USERNAME: Uživatelské jméno účtu SSL.com. (Požadované)
  • HESLO: Heslo účtu SSL.com (vyžadováno)
  • CREDENTIAL_ID: ID pověření pro podpisový certifikát. Pokud je credential_id vynecháno a uživatel má pouze jeden certifikát pro podpis kódu eSigner, CodeSignTool jej použije jako výchozí. Pokud má uživatel více než jeden certifikát pro podpis kódu, je tento parametr povinný. (Požadované)
  • TOTP_SECRET: Tajné OAuth TOTP. Podrobné informace získáte na https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Povinné)
  • ENVIRONMENT_NAME : Prostředí 'TEST' nebo 'PROD'. (Požadované)

Vstupy

  • cesta k vstupnímu_souboru: Cesta objektu kódu, který má být podepsán. (Požadované)
  • výstupní_adresář_cesta: Adresář, do kterého budou zapsány podepsané objekty kódu. Pokud je výstupní_cesta vynechána, soubor zadaný v -file_path bude přepsán podepsaným souborem.

Připravte součásti pracovního postupu (.NET Code DLL Signing)

  1. Vytvořte složku .circleci

V pracovním prostoru pro podepisování kódu vytvořte a složka .circleci. Pod ním vytvořte a soubor config.yml.

  1. Nastavte verzi CI
Verze: 2.1
 
  1.  Vyvolejte úlohy prostřednictvím pracovních postupů. Pracovní postupy organizují sadu úloh, které mají být spuštěny. Úlohy pro tento kanál jsou nakonfigurovány níže

Viz: https://circleci.com/docs/2.0/configuration-reference/#workflows

pracovní postupy:
 
  1. Napište název pracovního postupu.
  dotnet:
 
  1. Uvnitř pracovního postupu definujete úlohy, které chcete spouštět.
 práce: - stavět - podepsat: vyžaduje: - stavět
 

Definujte fázi sestavení

  1. Definujte úlohu, která se má později v pracovním postupu vyvolat.

 (Viz: https://circleci.com/docs/2.0/configuration-reference/#jobs)

práce: stavět:

 

  1. Vytvořte proměnnou prostředí
  • Aby byly vzorky čitelnější, používají se proměnné prostředí. Na výše uvedeném snímku obrazovky příkladu pracovního postupu podepisování byly volitelně vynechány PROJECT_NAME, PROJECT_VERSION a DOTNET_VERSION. Podepisování může pokračovat i přes tato opomenutí.  
  prostředí: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project

 

  1.  Definujte exekutor Docker: (https://circleci.com/docs/2.0/executor-types/)

    # Můžete zadat obrázek z Dockerhubu nebo použít jeden z našich Convenience Images z vývojářského centra CircleCI.

 docker: - obrázek: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Umístěte pracovní adresář pro úlohu
  pracovní_adresář: /home/circleci/project

 

  1. Přidejte kroky k úkolu

    Viz: https://circleci.com/docs/2.0/configuration-reference/#steps

  Kroky:

 

  1.  Podívejte se na zdrojový kód, aby k němu měl pracovní postup přístup.
    - Překontrolovat

 

  1. Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů
    - run: name: Create Artifacts Directory command: | mkdir -p ${WORKSPACE}/artefakty mkdir -p ${WORKSPACE}/balíčky

 

  1.  Sestavte projekt nebo řešení dotnet a všechny jeho závislosti.
      - run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Zkopírujte artefakt do adresáře artefaktů
  • V tomto pracovním postupu písemného příkladu podepisování bylo vytvořeno několik typů projektů. To je důvod, proč byly soubory různých typů projektů udržovány vytvořením podsložek. Pro projekty Dotnet byla vytvořena podsložka s názvem 'dotnet'. Na ukázkovém snímku výše nebylo nutné vytvářet podsložku s názvem 'dotnet', takže to nebylo součástí skriptu.
  - run: name: Copy Artifacts command: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Uložte artefakt do adresáře artefaktů k podepsání
  - persist_to_workspace: root: . cesty: - balíčky/*
 

Definujte fázi podpisu

  1. Definujte úlohu podepisování
 podepsat:

 

  1. Vytvořte proměnnou prostředí
  • Na výše uvedeném snímku obrazovky byl příkaz sign definován přímo ve skriptu sign a nikoli pod proměnnými prostředí. Bostatní metody se mohou správně podepsat pomocí CircleCI.
  • Aby byly vzorky čitelnější, používají se proměnné prostředí. Na výše uvedeném snímku obrazovky příkladu pracovního postupu nebyly některé proměnné volitelně zahrnuty. Podepisování může pokračovat i přes tato opomenutí.  
    prostředí: ENVIRONMENT_NAME: PROD COMMAND: podepsat WORKSPACE: /home/circleci/project

 

  1.     Umístěte pracovní adresář úlohy na Circle-CI
 pracovní_adresář: /home/circleci/project

 

  1. Název artefaktu pro podepisování
  • Hodnota 'artifact-name' je volitelná pro více projektů Parametr 'artifact-name' byl přidán, aby bylo možné použít stejnou podepisovací část pro všechny typy projektů. Vzhledem k tomu, že příklad na snímku obrazovky je založen na jediném projektu, nebylo nutné jej zahrnout.
    parametry: název-artefaktu: typ: řetězec výchozí: ''

 

  1. Definujte docker exekutor:

 Další reference viz: https://circleci.com/docs/2.0/executor-types/

       Můžete zadat obrázek z Dockerhubu nebo použít jeden z našich Convenience Images z vývojářského centra CircleCI.

       Nezapomeňte aktualizovat značku obrázku Docker níže na verzi openjdk vaší aplikace.

       Seznam dostupných obrázků CircleCI Docker Convenience Images je k dispozici zde: https://circleci.com/developer/images/image/cimg/openjdk

   docker: - obrázek: cimg/openjdk:17.0.3

 

  1. Přidejte kroky k úkolu

      Další reference viz: https://circleci.com/docs/2.0/configuration-reference/#steps

    Kroky:

 

  1. Vytvořte adresář artefaktů pro ukládání podepsaných a nepodepsaných souborů artefaktů
  - run: name: Create Artifacts Directory command: | mkdir -p ${WORKSPACE}/artefakty mkdir -p ${WORKSPACE}/balíčky

 

  1. Připojit k pracovnímu prostoru, abyste získali přístup k souboru artefaktu
   - připojit_pracovní prostor: at: /home/circleci/project

 

  1. Povolte Docker pro CodeSigner na Circle-CI
 - setup_remote_docker: name: Setup Remote Docker verze: 19.03.13 docker_layer_caching: true

 

  1. Vytáhněte obrázek Codesigner Docker z registru Github
        - spustit: jméno: Docker Pull Obrazový příkaz: | docker pull ghcr.io/sslcom/codesigner:nejnovější docker pull alpine:3.4

 

  1. Napište krok, kde bude artefakt podepsán pomocí CodeSignTool.
 - run: name: Sign Artifact File příkaz: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parametry.název-artifact >> 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/<< parametry.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parametry.artifact-name >> ${ WORKSPACE}/artifacts/<< parametry.název-artifact >>

 

  1. Napište krok pro váš artefakt, který se má nahrát z vašeho pracovního postupu, což vám umožní sdílet data mezi úlohami a ukládat data po dokončení pracovního postupu
    - store_artifacts: name: Upload Signed Files path: /home/circleci/project/artifacts/<< parameters.artifact-name >> destination: << parameters.artifact-name >>
 

Vytvořte nové úložiště na příkazovém řádku

Zkopírujte komponenty příkazu push z umístění vašeho projektu na váš účet GitHub

Zahrňte do svého editoru všechny komponenty příkazů push

SSL.com EV Podepisování kódu certifikáty pomáhají chránit váš kód před neoprávněnou manipulací a kompromitací s nejvyšší úrovní ověření a jsou k dispozici za pouhých $ 249 za rok. Můžete také používejte certifikát EV Code Signing ve velkém měřítku v cloudu pomocí eSigner.

OBJEDNAT TEĎ

Nastavte projekt na CircleCI pomocí úložiště, které je integrované do GitHubu

Definujte všechny proměnné prostředí

Když je projekt spuštěn, klikněte na tlačítko Nastavení projektu a poté na Proměnné prostředí a definujte proměnné

Umístěte hodnoty pro každou proměnnou

Klepněte na tlačítko Přidat proměnnou prostředí tlačítko pro přidání názvů a hodnot všech proměnných požadovaných pro projekt.

Počkejte, až bude projekt postaven

Klepněte na Trvalé do pracovního prostoru

Krátce počkejte na úspěšné nahrání archivu pracovního prostoru.

Klikněte na tlačítko podepsat

Počkejte na nastavení vzdáleného ukotvovače

V závislosti na velikosti souboru to může trvat déle než minutu

Počkejte, až budou artefakty podepsány

klikněte Artefakty Karta

Pokud kliknete Artefakty, uvidíte soubor, který jste úspěšně podepsali. O úspěšném podepsání kódu budete také informováni společností CircleCI.

Můžete se podívat na úložiště Github SSL.com, které obsahuje zdrojové kódy obrazu dockeru a popisuje, jak jej používat: https://github.com/SSLcom/ci-images

Ukázka potrubí CircleCI

Podívejte se na ukázku potrubí CircleCI, na které jsme vytvořili github.com/SSLcom/codesigner-circleci-sample

Další příručky pro integraci vzdáleného podepisování CI/CD

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.