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}}
- Klucz tajny TOTP protokołu OAuth (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
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
- Utwórz folder Github w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik yml w folderze.
- Nazwij swój projekt i rodzaj przepływu pracy
Nazwa: Maven Zbuduj i podpisz
- Uruchom ten przepływ pracy w trybie push
włączony: wciśnij
- 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
- Zdefiniuj oferty pracy w swoim edytorze
zadania: buduj-i-podpisuj-słój:
- Uruchom zadanie na Ubuntu Runner
działa: ubuntu-najnowszy
- 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
- 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…)
file_path: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Katalog, w którym zostaną zapisane obiekty z podpisanym kodem.
output_path: ${GITHUB_WORKSPACE}/artefakty
- 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.
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ć.
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
- Integracja Cloud Code Signing z CircleCI
- Integracja Cloud Code Signing z GitLab CI
- Integracja Cloud Code Signing z Jenkins CI
- Integracja Cloud Code Signing z Travis CI
- Integracja podpisywania kodu w chmurze z usługą Azure DevOps
- Automatyzacja podpisywania kodu w chmurze z usługami 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ą.