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:
- Kup certyfikat podpisywania kodu SSL.com EV
- Zarejestruj swój certyfikat podpisywania kodu w eSigner
- Pobierz i zainstaluj eSigner CKA
- 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ładowy przepływ pracy z podpisywaniem biblioteki DLL kodu .NET
Przygotuj elementy przepływu pracy
- Utwórz folder .circleci w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik yml jako config.yml w folderze.
- Ustaw wersję CircleCI. Pole wersji jest przeznaczone do wydawania ostrzeżeń o wycofaniu lub istotnych zmianach.
Wersja: 2.1
-
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
-
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
- Zdefiniuj zadanie do późniejszego wywołania w przepływie pracy.
Oferty pracy:
plik podpisu:
- 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
- Umieść katalog roboczy dla zadania
katalog_roboczy: /home/circleci/projekt
- Dodaj kroki do zadania Zobacz: https://circleci.com/docs/2.0/configuration-reference/#steps
kroki:
- Sprawdź kod źródłowy, aby przepływ pracy miał do niego dostęp.
- sprawdzić
- 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"
- 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
- 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
- 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
- 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
- Utwórz folder .github/workflows w swoim edytorze. Dołącz przepływy pracy do folderu i utwórz plik sign.yml w folderze.
- Nazwij swój projekt i rodzaj przepływu pracy
Nazwa: Znak artefaktu
-
Uruchom ten przepływ pracy w trybie push
włączony: wciśnij
-
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
-
Zdefiniuj oferty pracy w swoim edytorze
Oferty pracy:
plik podpisu:
-
Uruchom zadanie w Windows Runneruruchomione: Windows-najnowsze
-
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
-
Sprawdź kod źródłowy, aby przepływ pracy miał do niego dostęp.
– nazwa: Repozytorium kasy
używa:actions/checkout@v3
- 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" - 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
- 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
- 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 - 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 - 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
- Cprzetwórz plik yml jako .gitlab-ci.yml w folderze.
- 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
- Grupuje zadania w etapy. Wszystkie zadania w jednym etapie muszą zostać zakończone przed wykonaniem następnego etapu.
gradacja:
- podpisać
- Poniżej znajduje się definicja twojego zadania do podpisania pliku. Zdefiniuj, na jakim etapie zadanie będzie działać.
plik podpisu:
etap: znak
- Nazwa co najmniej jednego zadania, z którego ma zostać odziedziczona konfiguracja.
rozciąga się:
– .windows_runners - 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
- Utwórz plik yml jako .travis.yml w folderze głównym.
- Umieść architekturę procesora, na której ma zostać uruchomione zadanie.
łuk: amd64
- Domyślny język uruchamiania zadań w Travis CI
język: csharp
- System operacyjny, na którym ma zostać uruchomione zadanie
system operacyjny: Windows
- Określ kolejność etapów. Wszystkie prace w jednym etapie muszą zostać zakończone przed wykonaniem kolejnego etapu.
gradacja:
- podpisać
- Zdefiniuj etap budowy
Oferty pracy:
zawierać:
– scena: znak
-
Nazwa pracy
nazwa: plik podpisu -
System operacyjny, na którym ma zostać uruchomione zadanie
system operacyjny: Windows -
Bieżący język do uruchamiania zadań w Travis CI
język: ok -
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'
-
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” ”
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ą.