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.

Jak zintegrować eSigner CKA z narzędziami CI/CD do automatycznego podpisywania kodu

Cztery klikalne zakładki poniżej pokazują, jak zintegrować eSigner CKA z narzędziami Continuous Integration/Continuous Delivery (CI/CD) w celu automatycznego podpisywania kodu. W tabeli uwzględniono przewodniki integracji dla CircleCI, GitHub Actions, Gitlab CI i Travis CI. 

eSigner CKA (adapter klucza w chmurze) to aplikacja oparta na systemie Windows, która wykorzystuje interfejs CNG (KSP Key Service Provider), aby umożliwić narzędziom takim jak certutil.exe i signtool.exe korzystanie z Interfejs API zgodny z eSigner Cloud Signature Consortium (CSC).  dla operacji podpisywania kodu przedsiębiorstwa.

Aby móc podpisywać kod w oparciu o eSigner na narzędziach CI/CD, muszą być spełnione trzy warunki wstępne:

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

Zmienne środowiskowe
  • USERNAME: Nazwa użytkownika konta SSL.com. (Wymagany)
  • HASŁO: Hasło do konta SSL.com (wymagane)
  • TOTP_SECRET: Klucz tajny TOTP protokołu OAuth. Możesz uzyskać dostęp do szczegółowych informacji na temat Zautomatyzuj podpisywanie kodu eSigner EV – SSL.com (Wymagany)
  • Sposób użycia: „piaskownica” lub „produkt” (wymagane)
Przykładowe kody można znaleźć w SSL.com Repozytorium Github pod adresem: https://github.com/SSLcom/esigner-sample
Integracja CircleCIIntegracja akcji GitHubIntegracja Gitlab CIIntegracja Travis CI

Przykładowy przepływ pracy z podpisywaniem biblioteki DLL kodu .NET

Przygotuj elementy przepływu pracy

  1. Utwórz folder .circleci w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik yml jako config.yml w folderze.
  2. Ustaw wersję CircleCI. Pole wersji jest przeznaczone do wydawania ostrzeżeń o wycofaniu lub istotnych zmianach.

    Wersja: 2.1

  3. Kule to pakiety konfiguracji CircleCI wielokrotnego użytku, które można udostępniać w różnych projektach, umożliwiając tworzenie hermetyzowanych, sparametryzowanych poleceń, zadań i executorów, których można używać w wielu projektach. Aby użyć narzędzia signtool, musi to być system Windows.

    kule:

       wygrana: circleci/windows@5.0.0

  4. Wywołaj zadania za pomocą przepływów pracy. Przepływy pracy koordynują zestaw zadań do wykonania. 

    przepływy pracy:

       # Nazwa przepływu pracy.

       plik podpisu:

          # Wewnątrz przepływu pracy definiujesz zadania, które chcesz uruchomić.

             Oferty pracy:

                – plik podpisu

  5. Zdefiniuj zadanie do późniejszego wywołania w przepływie pracy.

    Oferty pracy:

       plik podpisu:

  6. Określ środowisko wykonawcze. Musimy użyć programu wykonawczego Windows, ponieważ potrzebne jest narzędzie signtool.

    wykonawca:

       nazwa: win/server-2019

       średni rozmiar

       wariant: vs 2019

  7. Umieść katalog roboczy dla zadania 

    katalog_roboczy: /home/circleci/projekt

  8. Dodaj kroki do zadania Zobacz: https://circleci.com/docs/2.0/configuration-reference/#steps  

    kroki:

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

    - sprawdzić

  10. Pobierz i rozpakuj konfigurację eSignerCKA

    - biegać:

          name: Pobierz i rozpakuj konfigurację eSignerCKA

          komenda: |

             Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip „https://www.ssl.com/download/ssl-com-esigner-cka”

             Rozwiń archiwum — Wymuś eSigner_CKA_Setup.zip

             Usuń element eSigner_CKA_Setup.zip

             Move-Item -Destination „eSigner_CKA_Installer.exe” -Ścieżka „eSigner_CKA_*\*.exe"

  11. Zainstaluj eSignerCKA

    - biegać:

          nazwa: Ustaw eSignerCKA w trybie cichym

          komenda: |

                mkdir -p „/home/circleci/project/eSignerCKA”

                ./eSigner_CKA_Instalator.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”/home/circleci/project/eSignerCKA” | Out-Null

  12. Ustaw informacje o koncie SSLcom na eSignerCKA

    - biegać:

          name: Skonfiguruj informacje o koncie na eSignerCKA

          komenda: |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode $env:MODE -user “$env:USERNAME” -pass “$env:PASSWORD” -totp “$env:TOTP_SECRET” -key “/home/circleci /project/eSignerCKA/master.key” -r

  13. Zwolnij i załaduj certyfikat do magazynu certyfikatów systemu Windows

    - biegać:

          nazwa: Załaduj certyfikat do Sklepu Windows

          komenda: |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe wyładuj

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe załaduj

  14. Wybierz certyfikat podpisywania kodu i uzyskaj odcisk palca do podpisywania i podpisuj artefakt za pomocą narzędzia do znakowania

    - biegać:

          name: Wybierz Certyfikat ze Sklepu Windows i podpisz przykładowy plik za pomocą narzędzia SignTool

          komenda: |

                $CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Wybierz obiekt - pierwszy 1

                & „C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe” znak /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 „$($ CodeSigningCert.Thumbprint)” „HelloWorld.dll”

Przykładowy przepływ pracy z podpisywaniem biblioteki DLL kodu .NET

Przygotuj elementy przepływu pracy

  1. Utwórz folder .github/workflows w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik sign.yml w folderze.
  2. Nazwij swój projekt i rodzaj przepływu pracy 

    Nazwa: Znak artefaktu

  3. Uruchom ten przepływ pracy w trybie push 

    włączony: wciśnij

  4. Utwórz zmienną środowiskową

    śr:

     MASTER_KEY: główny.klucz

     SIGNABLE_FILE_PATH: HelloWorld.dll

     KATALOG_INSTALACJI: C:\Users\runneradmin\eSignerCKA

     MASTER_KEY_FILE: C:\Users\runneradmin\eSignerCKA\master.key

  5. Zdefiniuj oferty pracy w swoim edytorze

    Oferty pracy:

     plik podpisu:

  6. Uruchom zadanie w Windows Runneruruchomione: Windows-najnowsze

  7. Utwórz nazwę. Po uruchomieniu przepływu pracy jest to nazwa, która jest rejestrowana.

    name: Podpisz plik DLL za pomocą eSignerCKA

Przedstaw kroki dla zadania Sign

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

    – nazwa: Repozytorium kasy

       używa:actions/checkout@v3

  2. Pobierz i rozpakuj konfigurację eSignerCKA

    – nazwa: Pobierz i rozpakuj konfigurację eSignerCKA

      biegać: |

          Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip „https://www.ssl.com/download/ssl-com-esigner-cka”

          Rozwiń archiwum — Wymuś eSigner_CKA_Setup.zip

          Usuń element eSigner_CKA_Setup.zip

          Move-Item -Destination „eSigner_CKA_Installer.exe” -Ścieżka „eSigner_CKA_*\*.exe"
  3. Zainstaluj eSignerCKA

    – nazwa: Ustaw eSignerCKA w trybie cichym

      biegać: |

          Nowy element - Katalog typu elementu - Wymuś - Ścieżka ${{ env.INSTALL_DIR }}

          ./eSigner_CKA_Installer.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{env.INSTALL_DIR }}” | Out-Null

  4. Ustaw informacje o koncie SSL.com na eSignerCKA

    – nazwa: Konfiguruj informacje o koncie na eSignerCKA

      biegać: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode „${{ secrets.MODE }}” -user „${{ secrets.USERNAME }}”

         -pass “${{ sekrety.HASŁO }}” -totp “${{ sekrety.TOTP_SECRET }}” -key “${{ env.MASTER_KEY_FILE }}” -r

  5. Zwolnij i załaduj certyfikat do magazynu certyfikatów systemu Windows

    – nazwa: Załaduj certyfikat do Sklepu Windows

      biegać: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe wyładuj

          Ładowanie ${{ env.INSTALL_DIR }}/eSignerCKATool.exe
  6. Wybierz certyfikat podpisywania kodu i uzyskaj odcisk palca do podpisania

    – nazwa: Wybierz Certyfikat ze Sklepu Windows

      biegać: |

          $CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Wybierz obiekt - pierwszy 1

          echo „THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV
  7. Podpisz artefakt za pomocą narzędzia do znakowania

    – nazwa: Podpisz przykładowy plik za pomocą SignTool

      biegać: |

          & „C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe” znak /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}

Przykładowy przepływ pracy z podpisywaniem biblioteki DLL kodu .NET

Zdefiniuj składniki przepływu pracy

  1. Cprzetwórz plik yml jako .gitlab-ci.yml w folderze.
  2. Służy do wybierania biegaczy z listy dostępnych biegaczy. Runner musi mieć wszystkie wymienione tutaj tagi, aby uruchomić zadanie.

    .windows_runners:

          tagi:

                – wspólne okna

                – okna

                – okna-1809

  3. Grupuje zadania w etapy. Wszystkie zadania w jednym etapie muszą zostać zakończone przed wykonaniem następnego etapu.

    gradacja:

          - podpisać

  4. Poniżej znajduje się definicja twojego zadania do podpisania pliku. Zdefiniuj, na jakim etapie zadanie będzie działać.

    plik podpisu:

         etap: znak

  5. Nazwa co najmniej jednego zadania, z którego ma zostać odziedziczona konfiguracja.

    rozciąga się:

         – .windows_runners
  6. Napisz skrypt do podpisania pliku.

    scenariusz:

    # Pobierz i rozpakuj konfigurację eSignerCKA

       – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_Setup.zip „https://www.ssl.com/download/ssl-com-esigner-cka”'

       – powershell.exe – ExecutionPolicy Bypass – Polecenie „Rozwiń archiwum – Wymuś eSigner_CKA_Setup.zip”

       – powershell.exe - ExecutionPolicy Bypass - Polecenie „Usuń element eSigner_CKA_Setup.zip”

       – powershell.exe -ExecutionPolicy Bypass -Command 'Move-Item -Destination „eSigner_CKA_Installer.exe” -Ścieżka „eSigner_CKA_*\*.exe""


    # Skonfiguruj eSignerCKA w trybie cichym

    – powershell.exe - ExecutionPolicy Bypass - Polecenie „./eSigner_CKA_Instalator.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\gitlab_runner\Desktop\eSignerCKA”'


    # Sprawdź katalog instalacyjny

    – powershell.exe -ExecutionPolicy Bypass -Command „katalog C:\Users\gitlab_runner\Desktop\eSignerCKA”


    # Skonfiguruj informacje o koncie na eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe config -mode ${MODE}

         -user “${USERNAME}” -pass “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\master.key” -r'


    # Wyładuj certyfikat do Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe unload'


    # Załaduj certyfikat do Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\gitlab_runner\Desktop\eSignerCKA\eSignerCKATool.exe load'


       # Sprawdź katalog danych

       – powershell.exe -ExecutionPolicy Bypass -Command „katalog C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA”


       # Sprawdź katalog danych konfiguracyjnych

       – powershell.exe -ExecutionPolicy Bypass -Command „katalog C:\Users\gitlab_runner\AppData\Roaming\eSignerCKA\Config”


    # Wybierz Certyfikat ze Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Wybierz obiekt - pierwszy 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'

    # Odcisk palca certyfikatu debugowania

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Odcisk palca'


    # Podpisz przykładowy plik za pomocą SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command „Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint);

         „C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'”

Przykładowy przepływ pracy z podpisywaniem biblioteki DLL kodu .NET

Zdefiniuj składniki przepływu pracy

  1. Utwórz plik yml jako .travis.yml w folderze głównym.
  2. Umieść architekturę procesora, na której ma zostać uruchomione zadanie.

    łuk: amd64

  3. Domyślny język uruchamiania zadań w Travis CI

    język: csharp

  4. System operacyjny, na którym ma zostać uruchomione zadanie

    system operacyjny: Windows

  5. Określ kolejność etapów. Wszystkie prace w jednym etapie muszą zostać zakończone przed wykonaniem kolejnego etapu.

    gradacja:

      - podpisać

  6. Zdefiniuj etap budowy

    Oferty pracy:

      zawierać:

         – scena: znak

  7. Nazwa pracy

    nazwa: plik podpisu
  8. System operacyjny, na którym ma zostać uruchomione zadanie

    system operacyjny: Windows
  9. Bieżący język do uruchamiania zadań w Travis CI

    język: ok
  10. Napisz skrypt Przed, który zostanie uruchomiony przed zbudowaniem projektu

    przed_skryptem:

        – powershell.exe -ExecutionPolicy Bypass -Command 'New-Item -ItemType Directory -Force -Path C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom'

  11. Napisz skrypt do zbudowania projektu.

    scenariusz:

    # Pobierz i rozpakuj konfigurację eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_Organizować coś.zip „https://www.ssl.com/download/ssl-com-esigner-cka”'

    – powershell.exe – ExecutionPolicy Bypass – Polecenie „Rozwiń archiwum – Wymuś eSigner_CKA_Setup.zip"

    – powershell.exe - ExecutionPolicy Bypass - Polecenie „Usuń element eSigner_CKA_Setup.zip"

    – powershell.exe -ExecutionPolicy Bypass -Command „Przenieś element -Miejsce docelowe”eSigner_CKA_Installer.exe" -Ścieżka "eSigner_CKA_*\*.exe""


    # Skonfiguruj eSignerCKA w trybie cichym

    – powershell.exe - ExecutionPolicy Bypass - Polecenie „./eSigner_CKA_Instalator.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom” | Out-Null'


    # Sprawdź katalog instalacyjny

    – powershell.exe -ExecutionPolicy Bypass -Command „katalog C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom'


    # Skonfiguruj informacje o koncie na eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom\eSignerCKATool.exe config -mode ${MODE} -user „${NAZWA UŻYTKOWNIKA}”

       -pass „${HASŁO}” -totp „${TOTP_SECRET}” -key „C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom\master.key” -r'


    # Wyładuj certyfikat do Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\travis\build\próbka projektanta\eSignerCKA\SSLcom\eSignerCKATool.exe wyładuj'


    # Załaduj certyfikat do Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:\Users\travis\build\próbka projektantaŁadowanie \eSignerCKA\SSLcom\eSignerCKATool.exe”


    # Wybierz Certyfikat ze Sklepu Windows

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Wybierz obiekt - pierwszy 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'


    # Odcisk palca certyfikatu debugowania

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $Odcisk palca'


    # Podpisz przykładowy plik za pomocą SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command „Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); „C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll” ”


Uwaga: Domyślnie SSL.com obsługuje znaczniki czasu z kluczy ECDSA.

Jeśli napotkasz ten błąd: The timestamp certificate does not meet a minimum public key length requirement, należy skontaktować się z dostawcą oprogramowania, aby zezwolił na sygnatury czasowe z kluczy ECDSA.

Jeśli nie ma możliwości, aby dostawca oprogramowania zezwolił na użycie normalnego punktu końcowego, możesz użyć tego starszego punktu końcowego http://ts.ssl.com/legacy aby uzyskać znacznik czasu z jednostki znacznika czasu RSA.

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