en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

en English
X

Select Language

Powered by Google TranslateTranslate

We hope you will find the Google translation service helpful, but we don’t promise that Google’s translation will be accurate or complete. You should not rely on Google’s translation. English is the official language of our site.

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.

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

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 = poświadczenia('es-username') // Nazwa użytkownika konta SSL.com. HASŁO = poświadczenia('es-password') // Hasło do konta SSL.com. CREDENTIAL_ID = poświadczenia('es-crendential-id') // Identyfikator poświadczeń do podpisywania certyfikatu. TOTP_SECRET = poświadczenia('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) REGISTRY_PASSWORD = poświadczenia('es-github -token') // Token Github dla obrazu dockera projektanta ściągającego REGISTRY_USERNAME = 'bayrakmustafa' // Nazwa użytkownika rejestru Github dla obrazu dockera projektanta ściągającego ENVIRONMENT_NAME = 'PROD' // Nazwa środowiska SSL.com. Dla konta demo 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') { kroki { sh 'docker pull ghcr.io/bayrakmustafa/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') { kroki { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- wolumin ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ NAZWA_ŚRODOWISKA} ghcr.io/bayrakmustafa/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { zawsze {archiwum artefakty artefaktów: "artefakty/HelloWorld.dllcesful", tylko jeśliSuc } } } } }
 

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ę link.

Wybierać 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 = poświadczenia('es-username') // Nazwa użytkownika konta SSL.com. HASŁO = poświadczenia('es-password') // Hasło do konta SSL.com. CREDENTIAL_ID = poświadczenia('es-crendential-id') // Identyfikator poświadczeń do podpisywania certyfikatu. TOTP_SECRET = poświadczenia('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) REGISTRY_PASSWORD = poświadczenia('es-github -token') // Token Github dla obrazu dockera projektanta ściągającego REGISTRY_USERNAME = 'bayrakmustafa' // Nazwa użytkownika rejestru Github dla obrazu dockera projektanta ściągającego ENVIRONMENT_NAME = 'PROD' // Nazwa środowiska SSL.com. Dla konta demo może to być 'TEST' w przeciwnym razie będzie to 'PROD' }

Skrypt dla etapów budowania i podpisywania

stage { // 1) Utwórz katalog artefaktów do przechowywania podpisanych i niepodpisanych plików artefaktów stage('Utwórz katalog artefaktów') { steps { sh 'mkdir ${OBSZAR ROBOCZY}/artefakty' sh 'mkdir ${OBSZAR ROBOCZY}/pakiety' } } / / 2) Ściągnij obraz Docker Codesigner z etapu rejestru Github ('Docker Pull Image') { steps { sh 'docker pull ghcr.io/bayrakmustafa/codesigner:latest' } } // 3) Utwórz projekt lub rozwiązanie dotnet i wszystkie jego zależności. // Po utworzeniu pliku dll lub exe skopiuj 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) To jest krok, w którym utworzone pliki DLL (artefakty) zostaną podpisane za pomocą CodeSignTool. stage('Podpisz i zapisz artefakt Dotnet Core DLL') { kroki { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- wolumin ${WORKSPACE}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ NAZWA_ŚRODOWISKA} ghcr.io/bayrakmustafa/codesigner:latest sign -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } post { zawsze {archiwum artefakty artefaktów: "artefakty/HelloWorld.dllcesful", tylko jeśliSuc } } } } }

Inne przewodniki dotyczące integracji zdalnego podpisywania

Aby uzyskać informacje na temat subskrypcji eSigner i certyfikatów podpisywania kodu, w tym rozwiązań niestandardowych i na dużą skalę, skontaktuj się z  lub wypełnij poniższy formularz.  

Zapisz się do newslettera SSL.com

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