Променливи на околната среда
- USERNAME: потребителско име на SSL.com акаунт. (задължително)
- ПАРОЛА: парола за акаунт в SSL.com (задължително)
- CREDENTIAL_ID: Идентификационен номер за подписване на сертификат. Ако credential_id е пропуснат и потребителят има само един сертификат за подписване на код на eSigner, CodeSignTool ще го използва по подразбиране. Ако потребителят има повече от един сертификат за подписване на код, този параметър е задължителен. (задължително)
- TOTP_SECRET: OAuth TOTP Secret. Можете да получите достъп до подробна информация за https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Задължително)
- ENVIRONMENT_NAME : среда „TEST“ или „PROD“. (задължително)
Входове
- входен_път_файл: Път на кодов обект, който трябва да бъде подписан. (задължително)
- път_изходна_директория: Директория, където ще бъдат записани обекти с подписан код. Ако output_path е пропуснат, файлът, указан в -file_path, ще бъде презаписан с подписания файл.
Примерен работен процес за подписване на .NET код DLL
Създайте yml файл
Групирайте работните места на етапи. Всички задачи в един етап трябва да бъдат завършени, преди да се изпълни следващият етап.
етапи: - изграждане - знак
Дефинирайте променливите на средата глобално. Свойството на ниво работа отменя глобалните променливи.
- Променливите на средата се използват, за да направят пробите по-четими. В горната екранна снимка на примерния работен процес PROJECT_NAME, PROJECT_VERSION и DOTNET_VERSION бяха пропуснати по избор. Подписването все още може да продължи с тези пропуски.
- Под ENVIRONMENT_NAME поставете „TEST“ за тестово подписване и „PROD“ за подписване на живо.
променливи: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
Определете Етап на изграждане
По-долу е дефиницията на вашата работа за изграждане на dll артефакт
build-dotnet:
- Определете на какъв етап ще се изпълнява заданието.
етап: изграждане
- Поставете пълното име на изображението, което трябва да се използва. Трябва да съдържа частта за регистъра, ако е необходимо.
изображение: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Дефинирайте скриптове, които трябва да се изпълняват *преди* заданието. Може да се задава глобално или за задание.
преди_скрипт: - mkdir -p ${CI_PROJECT_DIR}/артефакти - mkdir -p ${CI_PROJECT_DIR}/пакети
- Дефинирайте скриптове на Shell, изпълнявани от Runner. Изграждане на DLL артефакт
скрипт: - 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
- Посочете списък с файлове и директории, които трябва да бъдат прикачени към заданието, ако то успее.
- "expire_in' свойството позволява файлът да бъде изтрит след определен период от време. Използването му не е задължително. Ето защо екранната снимка на примерния работен процес по-горе не показва това свойство.
артефакти: пътища: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 минути
Определете етапа на знака
По-долу е дефиницията на вашата работа за подписване на dll артефакт
знак-дотнет-артефакти:
- Определете на какъв етап ще се изпълнява заданието.
етап: знак
- Поставете пълното име на изображението, което трябва да се използва. Трябва да съдържа частта за регистъра, ако е необходимо.
изображение: docker:19.03.0
- Дефинирайте услугите. Това е подобно на свойството `image`, но ще свърже посочените услуги към контейнера `image`.
услуги: - докер:19.03.0-dind
- Дефинирайте променливи на средата за конкретни задачи.
- На екранната снимка по-горе командата за знак е дефинирана директно в скрипта за знак, а не под променливите на средата. бдруги методи могат да подписват правилно с TravisCI.
променливи: COMMAND: "знак"
- Дефинирайте скриптове, които трябва да се изпълняват *преди* заданието. Може да се задава глобално или за задание.
преди_скрипт: - mkdir -p ${CI_PROJECT_DIR}/артефакти - mkdir -p ${CI_PROJECT_DIR}/пакети
- Поставете скриптове на Shell, изпълнявани от Runner. Подпишете .NET dll артефакт с CodeSignTool Docker Image
скрипт: - изтегляне на докер ghcr.io/sslcom/codesigner:най-нови - изпълнение на докер -i --rm --dns 8.8.8.8 --мрежов хост --том ${CI_PROJECT_DIR}/пакети:/codesign/examples --том $ {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:последните ${COMMAND} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output
- Напишете скрипта, който може да се използва за указване на списък с файлове и директории, които трябва да бъдат прикачени към заданието, ако то успее.
артефакти: пътища: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 дни
- Посочете списък с имена на задачи от по-ранни етапи, от които артефактите трябва да бъдат заредени.
зависимости: - build-dotnet
Стартирайте етапа на изграждане
Създайте хранилище
Обърнете се към инструкциите на командния ред в Gitlab, както се вижда на екранната снимка по-долу
Натиснете папката си
Направете това, като щракнете терминал в менюто, последвано от Нов терминал.
Въведете push скрипта на вашия терминал, за да натиснете проекта
Щракнете върху бутона Изграждане
След като задействате тръбопровода, продължете с изграждането
Проверете дали изграждането е успешно
Започнете етапа на знаците
Продължете да подписвате артефакта
Потвърдете дали подписването на кода е успешно
Вече можете да изтеглите подписания файл
Примерен тръбопровод на Gitlab CI
Вижте примерния конвейер на Gitlab CI, върху който сме създали github.com/SSLcom/codesigner-gitlabci-sampleДруги ръководства за интегриране на CI/CD отдалечено подписване
- Интегриране на подписване на облачен код с CircleCI
- Интегриране на подписване на облачен код с GitHub Actions
- Интеграция на подписване на облачен код с Jenkins CI
- Интегриране на подписване на облачен код с Travis CI
- Интегриране на подписване на облачен код с Azure DevOps
- Интегриране на подписване на облачен код с BitBucket
- Автоматизация на подписването на облачен код с CI/CD услуги
Нуждаете се от персонализирани решения?
С нашите експертни познания и петзвезден екип за поддръжка, ние сме готови и желаем да работим с вас по персонализирани решения или отстъпки за подписване на голям обем на ниво предприятие. Попълнете формата по-долу и ние ще се свържем с вас.