SSL.com

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:

     - 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

 

         username: ${{secrets.ES_USERNAME}}

         password: ${{secrets.ES_PASSWORD}}

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

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

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Wejścia

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

 - 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ą.

Zamknij wersję mobilną