Integracja Cloud Code Signing z Jenkins CI

To jest przewodnik, jak wykonać automatyczne podpisywanie kodu w Jenkins za pomocą eSigner CodeSignTool.

CodeSignTool to narzędzie wiersza poleceń, które jest odpowiednie do podpisywania dużej ilości danych i bezproblemowo integruje się z różnymi platformami CI/CD. Stanowi część eSigner: naszej usługi zdalnego podpisywania, która oferuje wydajne, bezpieczne i przyjazne dla użytkownika podejście do podpisywania kodu przedsiębiorstwa.

SSL.com's EV Podpisywanie kodu certyfikaty pomagają chronić Twój kod przed nieautoryzowanymi manipulacjami i naruszeniami bezpieczeństwa dzięki najwyższemu poziomowi weryfikacji i są dostępne za jedyne $ 249 rocznie.

KUP CERTYFIKAT PODPISANIA KODU SSL.COM EV

Utwórz plik Jenkins i zdefiniuj potok w edytorze kodu

pipeline { agent dowolne opcje { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Ustaw narzędzie .NET w edytorze kodu, konfigurując Jenkins

Kliknij Zarządzaj Jenkinsem zakładka na pulpicie Jenkins.

Przewiń stronę w dół i kliknij Globalna konfiguracja narzędzi.

Przewiń w dół i kliknij Instalacje .NET SDK.

Skopiuj wartość dla .NET SDK i wklej ją w edytorze kodu.

narzędzia { dotnetsdk "DOTNET_CORE_3.1.24" }

Przejdź do plugins.jenkins.io i zainstaluj wtyczkę .NET SDK

Pod Zarządzaj Jenkinsem w panelu, sprawdź Zarządzaj wtyczkami aby potwierdzić, czy zainstalowano wtyczkę .NET SDK.

Po potwierdzeniu, że wtyczka została zainstalowana, wróć do INSTALACJI .NET SDK i upewnij się, że ustawiono poprawną wersję i szczegóły wydania wtyczki .NET SDK. Przejdź, aby kliknąć Zapisz przycisk.

Ustaw zmienne środowiskowe w edytorze kodu

environment { NAZWA UŻYTKOWNIKA = credentials('es-username') // Nazwa użytkownika konta SSL.com. PASSWORD = credentials('es-password') // hasło do konta SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // Identyfikator poświadczeń do podpisywania certyfikatu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Nazwa środowiska .com. W przypadku konta demonstracyjnego może to być „TEST”, w przeciwnym razie będzie to „PROD” }

Znajdziesz wartości dla każdej zmiennej na pulpicie nawigacyjnym Jenkins pod Bezpieczeństwo> zarządzanie Poświadczeń.

 

Ustaw etapy tworzenia katalogu artefaktów, pobierania obrazu dockera, budowania platformy .NET i podpisywania kodu artefaktu

 

        1) Utwórz katalog artefaktów do przechowywania podpisanych i niepodpisanych plików artefaktów.
 stage('Utwórz katalog artefaktów') { kroki { sh 'mkdir ${OBSZAR ROBOCZY}/artifacts' sh 'mkdir ${OBSZAR ROBOCZY}/pakiety' } }
        2) Wyciągnij obraz Docker Codesigner z rejestru Github.
stage('Docker Pull Image') {steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Zbuduj projekt lub rozwiązanie dotnet i wszystkie jego zależności. Po utworzeniu pliku dll lub exe skopiuj go do folderu „pakiety” w celu podpisania.
stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/ HelloWorld.dll' } }
        4) Jest to krok, w którym utworzone pliki DLL (artefakty) zostaną podpisane za pomocą CodeSignTool.
stage('Podpisz i zapisz artefakt Dotnet Core DLL') {steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${OBSZAR ROBOCZY}/packages:/codesign/examples -- wolumin ${OBSZAR ROBOCZY}/artifacts:/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 NAZWA_ŚRODOWISKA=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { always { archiveArtifacts artefakty: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }

SSL.com's EV Podpisywanie kodu certyfikaty pomagają chronić Twój kod przed nieautoryzowanymi manipulacjami i naruszeniami bezpieczeństwa dzięki najwyższemu poziomowi weryfikacji i są dostępne za jedyne $ 249 rocznie.

KUP CERTYFIKAT PODPISANIA KODU SSL.COM EV

Utwórz repozytorium Github

Skopiuj każdy z komponentów polecenia push na Github.

Napisz polecenia w nowym terminalu w edytorze kodu, aby wypchnąć kod.

Po wypchnięciu kodu przejdź do swojego konta Github i skopiuj link URL swojego projektu.

Przejdź do swojego konta Jenkins i kliknij Utwórz pracę łącze.

Dodaj Rurociąg wielooddziałowy, ustaw nazwę dla swojego projektu i kliknij OK przycisk.

Pod Źródła branżowe, Wybierz git i wklej link URL swojego projektu na Github.

Przewiń w dół do Skanuj wyzwalacze potoku wielooddziałowego. Zaznacz pole dla Okresowo, jeśli nie uruchamiaj inaczej. Możesz wybrać 2 minut.

Kliknij Zapisz przycisk.

Wróć do swojego konta Jenkins, kliknij swój projekt i potwierdź, czy potok się rozpoczął

Kliknij swój projekt Jenkins i wybierz Skanuj teraz wielooddziałowy potok na pulpicie nawigacyjnym.

Kliknij Wyjście konsoli

Przewiń w dół i sprawdź, czy podpisywanie kodu powiodło się

Cały skrypt

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

Zdefiniuj rurociąg

pipeline { agent dowolne opcje { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Zainstaluj narzędzia do budowania

narzędzia { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }

Utwórz zmienną środowiskową

environment { NAZWA UŻYTKOWNIKA = credentials('es-username') // Nazwa użytkownika konta SSL.com. PASSWORD = credentials('es-password') // hasło do konta SSL.com. CREDENTIAL_ID = credentials('es-crendential-id') // Identyfikator poświadczeń do podpisywania certyfikatu. TOTP_SECRET = credentials('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL Nazwa środowiska .com. W przypadku konta demonstracyjnego może to być „TEST”, w przeciwnym razie będzie to „PROD” }

Skrypt dla etapów budowania i podpisywania

Stages { // 1) Utwórz katalog artefaktów do przechowywania podpisanych i niepodpisanych plików artefaktów stage('Utwórz katalog artefaktów') { steps { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } } / / 2) Wyciągnij obraz platformy Codesigner Docker z Github Registry stage('Docker Pull Image') { steps { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3) Zbuduj projekt lub rozwiązanie dotnet i wszystkie jego zależności. // Po utworzeniu pliku dll lub exe skopiuj go do folderu „packages” w celu podpisania stage('Build Dotnet') { steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/ Release/netcoreapp3.1/HelloWorld-0.0.1.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 4) Jest to krok, w którym utworzone pliki DLL (artefakty) zostaną podpisane za pomocą CodeSignTool. stage('Podpisz i zapisz artefakt Dotnet Core DLL') {steps { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${OBSZAR ROBOCZY}/packages:/codesign/examples -- wolumin ${OBSZAR ROBOCZY}/artifacts:/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 NAZWA_ŚRODOWISKA=${ ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { always { archiveArtifacts artefakty: "artifacts/HelloWorld.dll", onlyIfSuccessful: true } } } } }
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 potok Jenkinsa

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

Inne przewodniki dotyczące integracji zdalnego podpisywania

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.