Integracja Cloud Code Signing z Travis CI

W tym artykule pokazano, jak można wykonać automatyczne podpisywanie kodu w Travis CI, integrując narzędzie eSigner CodeSignTool ze swoim potoku. 

eSigner to nasza platforma do zdalnego podpisywania kodu, która zapewnia ten sam poziom bezpieczeństwa, co tokeny USB i sieciowy HSMS, ale w bardziej wydajny i intuicyjny sposób.  Częścią zestawu narzędzi eSigner jest CodeSignTool: bezpieczne narzędzie wiersza poleceń, które jest idealne do podpisywania kodu korporacyjnego w różnych środowiskach CI/CD, w tym Travis.
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.

Przykładowy przepływ pracy podpisywania kodu Java (Maven) w JAR

Utwórz projekt

W ramach projektu utwórz plik dla Travis

Zdefiniuj składniki przepływu pracy

  1. Umieść architekturę procesora, aby uruchomić zadanie

łuk: amd64

  1. Domyślny język do uruchamiania testów

język: java

  1. Określ system operacyjny, w którym chcesz uruchomić zadanie

system operacyjny: linux

  1. Napisz dystrybucję Ubuntu, która będzie używana

odległość: bioniczna

  1. Zdefiniuj zmienne środowiskowe globalnie. Właściwość na poziomie zadania zastępuje zmienne globalne.
  • Zwróć uwagę, że TERM=dumb jest potrzebne tylko dla instancji projektu Gradle.
  • W sekcji ENVIRONMENT_NAME umieść „TEST” dla podpisywania testowego i „PROD” dla podpisywania na żywo.

śr:

  światowy:

    – NAZWA_PROJEKTU=”Witaj Świecie”

    – WERSJA_PROJEKTU=”0.0.1”

    – TERM=głupi

    – NAZWA_ŚRODOWISKA=”TEST”

  1. Określ kolejność etapów. Wszystkie prace w jednym etapie muszą zostać zakończone przed wykonaniem kolejnego etapu.

gradacja:

  - budować

  - podpisać

Nakreśl etap budowy  

Oferty pracy:

  zawierać:

        – etap: budowa

  1. Nazwa pracy

      nazwa: budowniczy-maven

  1. Dystrybucja Ubuntu do użycia

      odległość: bioniczna

  1. Użyj polecenia docker do podpisywania  

      usługi:

        – doker

  1. Użyj dotnet-cli do zbudowania projektu

      język: java

  1. Wersja Java do zbudowania projektu

      JDK:

      – wyrocznia17

  1. Pamięć podręczna katalogu m2 w celu przyspieszenia

      Pamięć podręczna:

        katalogi:

        – $DOM/.m2

  1. Napisz skrypt Przed, który zostanie uruchomiony przed zbudowaniem projektu

      przed_skryptem:

        # Twórz katalogi dla artefaktów

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakiety

        # Ustaw opcje kompilacji Maven

        – wyeksportuj MAVEN_CLI_OPTS=”–tryb-wsadowy –błędy –niepowodzenie na końcu –wersja pokazowa -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Napisz skrypt do zbudowania projektu.
  • W tym 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 Java utworzono podfolder o nazwie „java”. Na powyższym zrzucie demonstracyjnym nie było potrzeby tworzenia podfolderu o nazwie „java”, więc nie było to uwzględnione w skrypcie.

      scenariusz:

        # Zbuduj projekt Maven z opcjami Maven

        – mvn $MAVEN_CLI_OPTS czysta instalacja -f java/pom.xml

         # Skopiuj zbudowane artefakty do katalogu artefaktów

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Opisz, jak określić listę plików i katalogów, które należy dołączyć do zadania, jeśli się powiedzie.

      przestrzenie robocze:

        Stwórz:

          nazwa: maven-jar-artefakty

          ścieżki:

            # Zapisz artefakt, aby użyć zadania podpisywania

            – ${TRAVIS_BUILD_DIR}/pakiety/${PROJECT_NAME}.jar

Nakreśl etap znaku

 – scena: znak

  1. Wpisz nazwę pracy

      nazwa: znak-jar-plik

  1. Umieść dystrybucję Ubuntu do użycia

      odległość: bioniczna

  1. Użyj polecenia Docker do podpisywania  

      usługi:

        – doker

     

  1. Zdefiniuj zmienne środowiskowe dla określonych zadań.
  • Na powyższym zrzucie ekranu polecenie podpisu zostało zdefiniowane bezpośrednio w skrypcie podpisu, a nie pod zmiennymi środowiskowymi. Both metody mogą poprawnie podpisywać się za pomocą TravisCI.

      śr:

        POLECENIE=”znak”

  1. Użyj dotnet-cli do zbudowania projektu

      język: java

  1. Wersja Java do zbudowania projektu

      JDK:

      – wyrocznia17

  1. Przed uruchomieniem skryptu przed zbudowaniem projektu

      przed_skryptem:

        # Twórz katalogi dla artefaktów

        – mkdir -p ${TRAVIS_BUILD_DIR}/artefakty

        – mkdir -p ${TRAVIS_BUILD_DIR}/pakiety

     

  1. Skrypt do budowy projektu

      scenariusz:

        # Docker Pociągnij obraz Docker CodeSigner

        – docker pull ghcr.io/sslcom/codesigner:latest

        # Podpisz artefakt za pomocą obrazu Docker CodeSigner

        – docker run -i –rm –dns 8.8.8.8 –host sieciowy –volume ${TRAVIS_BUILD_DIR}/pakiety:/codesign/przykłady

          –objętość ${TRAVIS_BUILD_DIR}/artefakty:/codesign/output

          -e NAZWA UŻYTKOWNIKA=${NAZWA UŻYTKOWNIKA} -e HASŁO=${HASŁO} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET}

          -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. Służy do określenia listy plików i katalogów, które powinny być dołączone do zadania, jeśli się powiedzie.

      przestrzenie robocze:

        posługiwać się:

          – maven-jar-artefakty

        Stwórz:

          nazwa: podpisany-plik-jar

          ścieżki:

            # Zapisz podpisany artefakt

            – ${TRAVIS_BUILD_DIR}/artefakty/${PROJECT_NAME}.jar

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

Zdefiniuj zmienne środowiskowe

Przejdź do Travisa i kliknij Ustawienia przycisk

Dodaj wartość dla każdej zmiennej

Przewiń w dół do Zmienne środowiskowe sekcji i kliknij przycisk Dodaj, aby dodać wartość dla każdej zmiennej

Utwórz repozytorium Github

Poszukaj poleceń push na Github

Napisz polecenia push w terminalu w swoim edytorze

Poczekaj na zakończenie pracy kompilacji

W Travis zadanie kompilacji powinno rozpocząć się automatycznie po wypchnięciu kodu.

Rozpocznij etap podpisywania kodu

Kliknij znak sekcja dla Narzędzie CodeSign rozpocząć proces podpisywania

Poczekaj, aż maszyna wirtualna zakończy uruchamianie

Potwierdź, czy podpisywanie kodu powiodło się

Możesz odwołać się do SSL.com Repozytorium Github, które zawiera kody źródłowe obrazu dokera i opisuje, jak go używać: https://github.com/SSLcom/ci-images

Przykładowy rurociąg Travis CI

Sprawdź przykładowy potok Travis CI, na którym utworzyliśmy https://github.com/SSLcom/codesigner-travisci-sample

Inne przewodniki integracji zdalnego podpisywania usług CI/CD

Potrzebujesz niestandardowych rozwiązań? 

Dzięki naszej wiedzy eksperckiej i pięciogwiazdkowemu personelowi pomocy technicznej jesteśmy gotowi i chętni do współpracy z Tobą w zakresie niestandardowych rozwiązań lub rabatów na podpisywanie na dużą skalę na poziomie przedsiębiorstwa. Wypełnij poniższy formularz, a skontaktujemy się z Tobą.

Zapisz się do newslettera SSL.com

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

Bądź na bieżąco i bezpiecznie

SSL.com jest światowym liderem w dziedzinie cyberbezpieczeństwa, PKI i certyfikaty cyfrowe. Zarejestruj się, aby otrzymywać najnowsze wiadomości branżowe, wskazówki i ogłoszenia o produktach od SSL.com.

Będziemy wdzięczni za Twoją opinię

Weź udział w naszej ankiecie i daj nam znać, co myślisz o swoim ostatnim zakupie.