Proměnné prostředí
- USERNAME: Uživatelské jméno účtu SSL.com. (Požadované)
- HESLO: Heslo účtu SSL.com (vyžadováno)
- CREDENTIAL_ID: ID pověření pro podpisový certifikát. Pokud je credential_id vynecháno a uživatel má pouze jeden certifikát pro podpis kódu eSigner, CodeSignTool jej použije jako výchozí. Pokud má uživatel více než jeden certifikát pro podpis kódu, je tento parametr povinný. (Požadované)
- TOTP_SECRET: Tajné OAuth TOTP. Podrobné informace získáte na https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Povinné)
- ENVIRONMENT_NAME : Prostředí 'TEST' nebo 'PROD'. (Požadované)
Vstupy
- cesta k vstupnímu_souboru: Cesta objektu kódu, který má být podepsán. (Požadované)
- výstupní_adresář_cesta: Adresář, do kterého budou zapsány podepsané objekty kódu. Pokud je výstupní_cesta vynechána, soubor zadaný v -file_path bude přepsán podepsaným souborem.
Příklad pracovního postupu podepisování kódu DLL .NET
Vytvořte soubor yml
Seskupte úlohy do fází. Všechny úlohy v jedné fázi musí být dokončeny před provedením další fáze.
etapy: - stavět - sign
Definujte proměnné prostředí globálně. Vlastnost na úrovni úlohy přepíše globální proměnné.
- Proměnné prostředí se používají k lepší čitelnosti vzorků. Na výše uvedeném snímku obrazovky příkladu pracovního postupu byly volitelně vynechány PROJECT_NAME, PROJECT_VERSION a DOTNET_VERSION. Podepisování může pokračovat i s těmito opomenutími.
- V části ENVIRONMENT_NAME umístěte „TEST“ pro testovací podepisování a „PROD“ pro živé podepisování.
proměnné: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
Definujte Fáze výstavby
Níže je uvedena definice vaší práce při vytváření dll artefaktu
build-dotnet:
- Definujte, v jaké fázi bude úloha probíhat.
etapa: stavět
- Vložte celý název obrázku, který má být použit. V případě potřeby by měl obsahovat část Registry.
obrázek: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Definujte skripty, které by se měly spustit *před* úlohou. Lze nastavit globálně nebo na zakázku.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages
- Definujte skripty Shell spouštěné Runnerem. Sestavení artefaktu DLL
skript: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll
- Zadejte seznam souborů a adresářů, které by měly být připojeny k úloze, pokud bude úspěšná.
- "expire_inVlastnost ' umožňuje smazání souboru po určité době. Jeho použití je volitelné. To je důvod, proč snímek obrazovky s ukázkovým pracovním postupem výše tuto vlastnost nezobrazuje.
artefakty: cesty: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minut
Definujte fázi znamení
Níže je uvedena definice vašeho úkolu podepsat dll artefakt
sign-dotnet-artifacts:
- Definujte, v jaké fázi bude úloha probíhat.
etapa: znamení
- Vložte celý název obrázku, který má být použit. V případě potřeby by měl obsahovat část Registry.
obrázek: docker:19.03.0
- Definujte služby. Toto je podobné vlastnosti `image`, ale propojí zadané služby s kontejnerem `image`.
služby: - docker:19.03.0-dind
- Definujte proměnné prostředí pro konkrétní úlohy.
- Na výše uvedeném snímku obrazovky byl příkaz sign definován přímo ve skriptu sign a nikoli pod proměnnými prostředí. Bostatní metody se mohou správně podepsat pomocí TravisCI.
proměnné: COMMAND: "sign"
- Definujte skripty, které by se měly spustit *před* úlohou. Lze nastavit globálně nebo na zakázku.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages
- Umístěte skripty Shell spouštěné Runnerem. Podepište artefakt .NET dll pomocí CodeSignTool Docker Image
skript: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output
- Napište skript, který lze použít k určení seznamu souborů a adresářů, které by měly být připojeny k úloze, pokud bude úspěšná.
artefakty: cesty: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 days
- Zadejte seznam názvů úloh z dřívějších fází, ze kterých by se měly načítat artefakty.
závislosti: - build-dotnet
Zahajte fázi sestavení
Vytvořte úložiště
Podívejte se na pokyny pro příkazový řádek na Gitlabu, jak je vidět na obrázku níže
Posuňte složku
Udělejte to kliknutím terminál v nabídce a poté Nový terminál.
Chcete-li projekt odeslat, zadejte na svém terminálu push skript
Klepněte na tlačítko Sestavit
Po spuštění potrubí pokračujte ve stavbě
Zkontrolujte, zda je sestavení úspěšné
Spusťte fázi znamení
Pokračujte k podpisu artefaktu
Potvrďte, zda bylo podepsání kódu úspěšné
Nyní si můžete stáhnout podepsaný soubor
Ukázka Gitlab CI Pipeline
Podívejte se na ukázkový Gitlab CI pipeline, na kterém jsme vytvořili github.com/SSLcom/codesigner-gitlabci-sampleDalší příručky pro integraci vzdáleného podepisování CI/CD
- Integrace cloudového podepisování kódu s CircleCI
- Integrace cloudového podepisování kódu s akcemi GitHub
- Integrace cloudového podepisování kódu s Jenkins CI
- Integrace cloudového podepisování kódu s Travis CI
- Integrace cloudového podepisování kódu s Azure DevOps
- Integrace cloudového podepisování kódu s BitBucket
- Cloudová automatizace podepisování kódu se službami CI/CD
Potřebujete vlastní řešení?
S našimi odbornými znalostmi a pětihvězdičkovým podpůrným personálem jsme připraveni a ochotni s vámi spolupracovat na vlastních řešeních nebo slevách na velkoobjemové podpisy na podnikové úrovni. Vyplňte formulář níže a my se vám ozveme.