en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

Integracja Cloud Code Signing z CircleCI

Ten samouczek pokazuje, w jaki sposób eSigner jest zintegrowany z CircleCI w celu automatycznego podpisywania kodu.

eSigner to środowisko chmurowe SSL.com do podpisywania kodu. Klucze i certyfikaty podpisywania są bezpiecznie hostowane w chmurze przez SSL.com i można do nich uzyskać dostęp do podpisywania z dowolnego urządzenia podłączonego do Internetu, dzięki czemu eSigner jest jedną z najlepszych platform do zdalnego podpisywania. Zestaw narzędzi eSigner zawiera CodeSignTool, który jest narzędzie wiersza poleceń dla Podpisywanie kodu EV certyfikatów i jest idealny do tworzenia zautomatyzowanych procesów podpisywania na różnych platformach Continuous Integration/Continuous Delivery (CI/CD), w tym CircleCI. 

SSL.com's EV Podpisywanie kodu Certyfikaty pomagają chronić Twój kod przed nieautoryzowanym manipulowaniem i naruszeniem bezpieczeństwa z najwyższym poziomem walidacji i są dostępne za jedyne $ 249 rocznie. Można również używaj swojego certyfikatu EV Code Signing na dużą skalę w chmurze za pomocą eSigner.

ZAMÓW TERAZ

Zmienne środowiskowe

  • USERNAME: Nazwa użytkownika konta SSL.com. (Wymagany)
  • HASŁO: Hasło do konta SSL.com (wymagane)
  • CREDENTIAL_ID: Identyfikator poświadczeń do podpisywania certyfikatu. Jeśli credential_id zostanie pominięty, a użytkownik ma tylko jeden certyfikat podpisywania kodu eSigner, CodeSignTool domyślnie to zrobi. Jeśli użytkownik ma więcej niż jeden certyfikat podpisywania kodu, ten parametr jest obowiązkowy. (Wymagany)
  • TOTP_SECRET: Klucz tajny TOTP protokołu OAuth. Możesz uzyskać dostęp do szczegółowych informacji na temat https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Wymagany)
  • ŚRODOWISKO_NAME : 'TEST' lub 'PROD' Środowisko. (Wymagany)

Wejścia

  • ścieżka_pliku_wejściowego: Ścieżka obiektu kodu do podpisania. (Wymagany)
  • ścieżka_katalogu_wyjściowego: Katalog, w którym zostaną zapisane obiekty z podpisanym kodem. Jeśli ścieżka_wyjściowa zostanie pominięta, plik określony w -ścieżka_pliku zostanie zastąpiony podpisanym plikiem.

Przygotuj elementy przepływu pracy (Podpisywanie biblioteki DLL kodu .NET)

  1. Utwórz folder .circleci

W obszarze roboczym podpisywania kodu utwórz .circleci folder. Pod nim utwórz plik config.yml.

  1. Ustaw wersję CI
Wersja: 2.1
 
  1.  Wywołaj zadania za pomocą przepływów pracy. Przepływy pracy organizują zestaw zadań do uruchomienia. Zadania dla tego potoku są skonfigurowane poniżej

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

przepływy pracy:
 
  1. Wpisz nazwę przepływu pracy.
  kropka:
 
  1. Wewnątrz przepływu pracy definiujesz zadania, które chcesz uruchomić.
 zadania: - buduj - znak: wymaga: - buduj
 

Zdefiniuj etap kompilacji

  1. Zdefiniuj zadanie do późniejszego wywołania w przepływie pracy.

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

praca: budowa:

 

  1. Utwórz zmienną środowiskową
  • Zmienne środowiskowe są używane, aby próbki były bardziej czytelne. Na powyższym zrzucie ekranu przykładowego przepływu pracy podpisywania PROJECT_NAME, PROJECT_VERSION i DOTNET_VERSION zostały opcjonalnie pominięte. Podpisywanie może nadal przebiegać nawet z tymi pominięciami.  
  środowisko: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 PRZESTRZEŃ ROBOCZA: /home/circleci/project

 

  1.  Zdefiniuj executor Dockera: (https://circleci.com/docs/2.0/executor-types/)

    # Możesz określić obraz z Dockerhub lub użyć jednego z naszych wygodnych obrazów z Centrum programistów CircleCI.

 okno dokowane: — obraz: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. Umieść katalog roboczy dla zadania
  katalog_roboczy: /home/circleci/projekt

 

  1. Dodaj kroki do pracy

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

  kroki:

 

  1.  Sprawdź kod źródłowy, aby przepływ pracy miał do niego dostęp.
    - Sprawdź

 

  1. Utwórz katalog artefaktów, aby przechowywać podpisane i niepodpisane pliki artefaktów
    - uruchom: nazwa: Utwórz katalog artefaktów polecenie: | mkdir -p ${PRZESTRZEŃ ROBOCZA}/artefakty mkdir -p ${PRZESTRZEŃ ROBOCZA}/pakiety

 

  1.  Utwórz projekt lub rozwiązanie dotnet i wszystkie jego zależności.
      - run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Skopiuj artefakt do katalogu artefaktów
  • W tym pisemnym, przykładowym przepływie pracy podpisywania utworzono wiele typów projektów. Dlatego utrzymywano pliki różnych typów projektów, tworząc podfoldery. Dla projektów Dotnet utworzono podfolder o nazwie „dotnet”. Na powyższym zrzucie demonstracyjnym nie było potrzeby tworzenia podfolderu o nazwie „dotnet”, więc nie zostało to uwzględnione w skrypcie.
  - uruchom: nazwa: polecenie Kopiuj artefakty: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. Zachowaj artefakt w katalogu artefaktów w celu podpisania
  - persist_to_workspace: root: . ścieżki: - pakiety/*
 

Zdefiniuj etap podpisywania

  1. Zdefiniuj zadanie podpisywania
 znak:

 

  1. Utwórz zmienną środowiskową
  • Na powyższym zrzucie ekranu polecenie podpisu zostało zdefiniowane bezpośrednio w skrypcie podpisu, a nie pod zmiennymi środowiskowymi. Binne metody mogą poprawnie podpisywać się za pomocą CircleCI.
  • Zmienne środowiskowe są używane, aby próbki były bardziej czytelne. Na powyższym zrzucie ekranu przykładowego przepływu pracy niektóre zmienne opcjonalnie nie zostały uwzględnione. Podpisywanie może nadal przebiegać nawet z tymi pominięciami.  
    środowisko: REGISTRY_USERNAME: bayrakmustafa ENVIRONMENT_NAME: PROD COMMAND: znak PRZESTRZEŃ ROBOCZA: /home/circleci/project

 

  1.     Umieść katalog roboczy dla zadania na Circle-CI
 katalog_roboczy: /home/circleci/projekt

 

  1. Nazwa artefaktu do podpisania
  • Wartość 'artifact-name' jest opcją dla wielu projektów. Dodano parametr 'artifact-name', aby ta sama część podpisująca mogła być używana dla wszystkich typów projektów. Ponieważ przykład na zrzucie ekranu opiera się na pojedynczym projekcie, nie było potrzeby jego dołączania.
    parametry: nazwa-artefaktu: typ: ciąg domyślnie: ''

 

  1. Zdefiniuj executor dockera:

 Aby uzyskać dodatkowe informacje, zobacz: https://circleci.com/docs/2.0/executor-types/

       Możesz określić obraz z Dockerhub lub użyć jednego z naszych wygodnych obrazów z Centrum programistów CircleCI.

       Pamiętaj, aby zaktualizować poniższy tag obrazu platformy Docker do wersji openjdk aplikacji.

       Lista dostępnych obrazów CircleCI Docker Convenience dostępna jest tutaj: https://circleci.com/developer/images/image/cimg/openjdk

   Docker: - obraz: cimg/openjdk:17.0.3

 

  1. Dodaj kroki do pracy

      Aby uzyskać dodatkowe informacje, zobacz: https://circleci.com/docs/2.0/configuration-reference/#steps

    kroki:

 

  1. Utwórz katalog artefaktów, aby przechowywać podpisane i niepodpisane pliki artefaktów
  - uruchom: nazwa: Utwórz katalog artefaktów polecenie: | mkdir -p ${PRZESTRZEŃ ROBOCZA}/artefakty mkdir -p ${PRZESTRZEŃ ROBOCZA}/pakiety

 

  1. Dołącz do Workspace, aby uzyskać dostęp do pliku artefaktu
   - attach_workspace: w: /home/circleci/project

 

  1. Włącz Docker dla CodeSigner na Circle-CI
 - setup_remote_docker: nazwa: Konfiguracja zdalnego Dockera wersja: 19.03.13 docker_layer_caching: true

 

  1. Wyciągnij obraz dockera Codesigner z rejestru Github
        - uruchom: nazwa: Docker Pull Image polecenie: | docker pull ghcr.io/bayrakmustafa/codesigner:ostatni docker pull alpine:3.4

 

  1. Napisz krok, w którym artefakt zostanie podpisany za pomocą CodeSignTool.
 - run: name: Sign Artefakt File polecenie: | 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.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --host sieciowy --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/bayrakmustafa/codesigner ${COMMAND} -input_file_path=/codesign/packages/<< parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameters.artifact-name >> ${ PRZESTRZEŃ ROBOCZA}/artifacts/<< parametry.nazwa-artefaktu >>

 

  1. Napisz krok, aby artefakt został przesłany z przepływu pracy, umożliwiając udostępnianie danych między zadaniami i przechowywanie danych po zakończeniu przepływu pracy
    - store_artifacts: name: Upload Signed Files ścieżka: /home/circleci/project/artifacts/<< parametry.artifact-name >> destination: << parameters.artifact-name >>
 

Utwórz nowe repozytorium w wierszu poleceń

Skopiuj komponenty poleceń push z lokalizacji swojego projektu na swoim koncie GitHub

Uwzględnij wszystkie komponenty poleceń push w swoim edytorze

Skonfiguruj projekt w CircleCI, korzystając z repozytorium zintegrowanego z GitHub

Zdefiniuj wszystkie zmienne środowiskowe

Gdy projekt jest uruchomiony, kliknij przycisk Ustawienia projektu, a następnie Zmienne środowiskowe, aby zdefiniować zmienne

Umieść wartości dla każdej zmiennej

Kliknij Dodaj zmienną środowiskową przycisk, aby dodać nazwy i wartości wszystkich zmiennych wymaganych dla projektu.

Poczekaj, aż projekt zostanie zbudowany

Kliknij Utrwalanie w obszarze roboczym

Krótko poczekaj na pomyślne przesłanie archiwum obszaru roboczego.

Kliknij przycisk znak

Poczekaj na skonfigurowanie zdalnego Dockera

Może to zająć więcej niż minutę, w zależności od rozmiaru pliku

Poczekaj na podpisanie artefaktów

Kliknij Artefakty Zakładka

Jeśli klikniesz Artefakty, będziesz mógł zobaczyć plik, który pomyślnie podpisano kodem. Zostaniesz również powiadomiony przez CircleCI o pomyślnym podpisaniu kodu.

Uwaga: Upewnij się, że poprawiłeś błędy typograficzne lub błędne podziały wierszy w skrypcie, aby proces podpisywania przebiegał płynnie.

Inne przewodniki integracji zdalnego podpisywania CI/CD

Aby uzyskać informacje na temat subskrypcji eSigner i certyfikatów podpisywania kodu, w tym rozwiązań niestandardowych i na dużą skalę, skontaktuj się z  lub wypełnij poniższy formularz.  

Zapisz się do newslettera SSL.com

Nie przegap nowych artykułów i aktualizacji z SSL.com