Integracja Cloud Code Signing z działaniami GitHub

W tym artykule przewodnika przedstawiono sposób integracji usługi eSigner z akcjami usługi GitHub w celu automatycznego podpisywania kodu w konfiguracji ciągłej integracji/ciągłego dostarczania (CI/CD).

eSigner to nasza oparta na chmurze platforma do podpisywania, której ufają twórcy oprogramowania na całym świecie w zakresie podpisywania kodu korporacyjnego bez konieczności używania tokenów USB lub innego specjalistycznego sprzętu.  Jednym z komponentów eSigner jest CodeSignTool: oparte na prywatności narzędzie wiersza poleceń, które jest bardzo skuteczne dla programistów, którzy chcą zautomatyzować podpisywanie kodu.  Poniższe sekcje pokazują, jak można podpisać kod Java (Maven) w GitHub Actions za pomocą narzędzia eSigner CodeSignTool.

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

Stosowanie

- Nazwa: Podpisz artefakt za pomocą CodeSignTool

  wykorzystuje: sslcom/actions-codesigner@develop

  z:

  •      Polecenia narzędzia CodeSign:

     - get_credential_ids: wyślij listę identyfikatorów poświadczeń eSigner powiązanych z użytkownikiem.

     - credential_info: Dane wyjściowe klucza i certyfikatu związane z identyfikatorem poświadczeń.

     - sign: Obiekt kodu znaku i znacznika czasu.

     - batch_sign: Podpisz i oznacz czasowo wiele obiektów kodu za pomocą jednego OTP.

     - hash: Wstępnie oblicz skróty do późniejszego użycia za pomocą polecenia batch_hash_sign.

     - batch_sign_hash: Podpisz hash(y) wstępnie obliczone za pomocą polecenia hash.

        polecenie: znak

 

  • Nazwa użytkownika konta SSL.com.

         username: ${{secrets.ES_USERNAME}}

  •  Hasło do konta SSL.com.

         password: ${{secrets.ES_PASSWORD}}

  • Identyfikator poświadczeń do podpisywania certyfikatu.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • Ścieżka obiektu kodu do podpisania.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • Katalog, w którym zostaną zapisane obiekty z podpisanym kodem.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Wejścia

  • nazwa użytkownika: Nazwa użytkownika konta SSL.com. (Wymagany)
  • password: Hasło do konta SSL.com (wymagane)
  • identyfikator_poświadczenia: 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)
  • tajne_tajne: 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)
  • ścieżka pliku: Ścieżka obiektu kodu do podpisania. (Wymagany)
  • ścieżka wyjściowa: 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

Przygotuj elementy przepływu pracy

  1. Utwórz folder Github w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik yml w folderze.
    1. Nazwij swój projekt i rodzaj przepływu pracy
    Nazwa: Maven Zbuduj i podpisz
     
    1. Uruchom ten przepływ pracy w trybie push
    włączony: wciśnij
     
    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 opcjonalnie pominięto PROJECT_NAME, PROJECT_VERSION i MAVEN_VERSION. Podpisywanie może nadal przebiegać nawet z tymi pominięciami.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Zdefiniuj oferty pracy w swoim edytorze
    zadania: buduj-i-podpisuj-słój:
     
    1. Uruchom zadanie na Ubuntu Runner
        działa: ubuntu-najnowszy
     
    1. Utwórz nazwę. Po uruchomieniu przepływu pracy jest to nazwa, która jest rejestrowana.
      nazwa: CodeSigner na Javie z Maven
     

Opisz kroki, które należy wykonać, aby sprawdzić kod źródłowy, skonfigurować środowisko Java i Maven oraz utworzyć katalog artefaktów.

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

   kroki: - używa: actions/checkout@v2
 

  2) Skonfiguruj środowisko Java i Maven na potrzeby przepływu pracy.

    - nazwa: Zainstaluj Maven, a Java używa: s4u/setup-maven-action@v1.3.1 z: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) Utwórz katalog artefaktów, aby przechowywać podpisane i niepodpisane pliki artefaktów

 - nazwa: Utwórz powłokę katalogu: bash uruchom: | mkdir ${GITHUB_WORKSPACE}/artefakty mkdir ${GITHUB_WORKSPACE}/pakiety

 

      4) Zbuduj maven projekt lub rozwiązanie i wszystkie jego zależności.

      Po utworzeniu pliku jar skopiuj go do folderu „pakiety” w celu podpisania

  • 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 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.
 - nazwa: Zbuduj powłokę projektu Java: bash uruchom: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. słoik
 

Opisz kroki dla zadań Podpisz i prześlij

  1. Zadanie podpisywania to krok, w którym utworzone pliki JAR (artefakty) zostaną podpisane za pomocą CodeSignTool.
 - nazwa: Sign Artifact wykorzystuje: sslcom/actions-codesigner@develop z:

           Obiekt kodu znaku i znacznika czasu.

polecenie: znak

           Nazwa użytkownika konta SSL.com.

nazwa użytkownika: ${{secrets.ES_USERNAME}}

           Hasło do konta SSL.com.

hasło: ${{sekrety.ES_PASSWORD}}

           Identyfikator poświadczeń do podpisywania certyfikatu.

credential_id: ${{sekrety.CREDENTIAL_ID}}

           Sekret OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{sekrety.ES_TOTP_SECRET}}

           Ścieżka obiektu kodu do podpisania. (pliki DLL, JAR, EXE, MSI vb…)

  ścieżka_pliku: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           Katalog, w którym zostaną zapisane obiekty z podpisanym kodem.

output_path: ${GITHUB_WORKSPACE}/artefakty

 

  1. Zadanie przesyłania to etap, w którym zostaną przesłane artefakty z przepływu pracy, umożliwiając udostępnianie danych między zadaniami i przechowywanie danych po zakończeniu przepływu pracy
 - nazwa: Prześlij podpisane pliki używa: actions/upload-artifact@v2 z: nazwa: ${{env.PROJECT_NAME}}.jar ścieżka: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Pobierz narzędzie do przesyłania artefaktów kompilacji z Github Marketplace

Przejrzyj swój skrypt kodowania

Ogólnie skrypt kodujący dla zadań budowania, podpisywania i przesyłania powinien wyglądać jak na poniższym obrazku. Upewnij się, że poprawiłeś wszelkie błędy, takie jak nieprawidłowa pisownia lub błędne podziały wierszy w skrypcie, aby proces podpisywania przebiegał płynnie.

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 swoje zmienne środowiskowe

Przejdź do lokalizacji swojego projektu na swoim koncie Github. Kliknij Akcje patka. Kliknij Nowy sekret repozytorium przycisk, aby umieścić wartości dla każdej zmiennej środowiskowej wymaganej do podpisania kodu.

Utwórz nowe repozytorium w wierszu poleceń

Przejdź do lokalizacji swojego projektu na Github i skopiuj każdy komponent polecenia push.

Wciśnij projekt

Uwzględnij każdy wiersz polecenia wypychania w edytorze kodu. Po zakończeniu kod zostanie automatycznie przesłany na Github.

Poczekaj, aż artefakt zostanie podpisany za pomocą eSigner CodeSignTool

Prześlij podpisany plik

Kliknij podpisany plik, aby go przesłać.

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

Przykładowy potok akcji Github


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

Inne przewodniki integracji zdalnego podpisywania 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.