употреба
– име: Подпишете артефакт с CodeSignTool
използва: sslcom/actions-codesigner@develop
с:
- Команди на CodeSignTool:
- get_credential_ids
: Изведете списъка с идентификационни данни на eSigner, свързани с потребител.
- credential_info
: Изходен ключ и информация за сертификата, свързани с идентификационен номер на идентификационните данни.
- sign
: Подпис и обект на времеви клеймо.
- batch_sign
: Подпишете и маркирайте времеви обекти с един OTP.
- hash
: Предварително изчислете хеш(ове) за по-късна употреба с команда batch_hash_sign.
- batch_sign_hash
: Подпишете хеш(ове), предварително изчислен с команда хеш.
команда: знак
- Потребителско име на акаунт в SSL.com.
username: ${{secrets.ES_USERNAME}}
- Парола за акаунт в SSL.com.
password: ${{secrets.ES_PASSWORD}}
- Идентификационен номер за подписване на сертификат.
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Пътят на кодовия обект, който трябва да бъде подписан.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Директория, където ще бъдат записани обекти с подписан код.
output_path: ${GITHUB_WORKSPACE}/artifacts
Входове
- потребителско име: потребителско име на 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 (Задължително)
- файлова пътека: Път на кодов обект, който трябва да бъде подписан. (задължително)
- изходен_път: Директория, където ще бъдат записани обекти с подписан код. Ако output_path е пропуснат, файлът, указан в -file_path, ще бъде презаписан с подписания файл.
Java Code (Maven) Примерен работен процес за подписване на JAR
Подгответе компонентите на работния процес
- Създайте папка Github във вашия редактор. Включете работни потоци с папката и създайте yml файл под папката.
- Наименувайте вашия проект и вида на работния процес, който е включен
Име: Maven Build and Sign
- Задействайте този работен процес при натискане
на: натиснете
- Създайте променлива на средата
- Променливите на средата се използват, за да направят пробите по-четими. В горната екранна снимка на примерния работен процес PROJECT_NAME, PROJECT_VERSION и MAVEN_VERSION бяха пропуснати по избор. Подписването може да продължи дори и при тези пропуски.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Определете работните места във вашия редактор
работни места: build-and-sign-jar:
- Изпълнете задание на Ubuntu Runner
работи на: ubuntu-latest
- Създайте име. Когато работният поток се изпълнява, това е името, което се регистрира.
име: CodeSigner на Java с Maven
Очертайте стъпките за проверка на изходния код, настройка на средата на Java и Maven и създаване на директория на артефактите.
1) Проверете изходния код, така че работният процес да има достъп до него.
стъпки: - използва: actions/checkout@v2
2) Настройте средата на Java и Maven за използване от работния процес.
- име: Инсталирайте Maven и Java използва: s4u/setup-maven-action@v1.3.1 с: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) Създайте директория с артефакти, за да съхранявате подписани и неподписани файлове с артефакти
- име: Създаване на обвивка на директория: bash run: | mkdir ${GITHUB_WORKSPACE}/артефакти mkdir ${GITHUB_WORKSPACE}/пакети
4) Създайте maven проект или решение и всички негови зависимости.
След като jar файлът е създаден, копирайте в папката 'packages' за подписване
- В този примерен работен поток за писмено подписване бяха създадени множество типове проекти. Ето защо файловете от различни типове проекти се съхраняват чрез създаване на подпапки. Създадена е подпапка с име „java“ за Java проекти. В демонстрационния скрийншот по-горе не беше необходимо да се създава подпапка с име „java“, така че това не беше включено в скрипта.
- име: Build Java Project shell: bash run: | mvn чиста инсталация -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. буркан
Очертайте стъпките за заданията за подписване и качване
- Заданието Sign е стъпката, при която създадените JAR (артефактни) файлове ще бъдат подписани с CodeSignTool.
- име: Sign Artifact използва: sslcom/actions-codesigner@develop с:
Обект на код за знак и време.
команда: знак
Потребителско име на акаунт в SSL.com.
потребителско име: ${{secrets.ES_USERNAME}}
Парола за акаунт в SSL.com.
парола: ${{secrets.ES_PASSWORD}}
Идентификационен номер за подписване на сертификат.
credential_id: ${{secrets.CREDENTIAL_ID}}
OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
Пътят на кодовия обект, който трябва да бъде подписан. (DLL, JAR, EXE, MSI файлове vb...)
файл_път: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Директория, където ще бъдат записани обекти с подписан код.
изходен_път: ${GITHUB_WORKSPACE}/артефакти
- Заданието за качване е стъпката, при която артефактите от вашия работен процес ще бъдат качени, което ви позволява да споделяте данни между задания и да съхранявате данни, след като работният поток приключи
- име: Качване на подписани файлове използва: actions/upload-artifact@v2 с: име: ${{env.PROJECT_NAME}}.jar път: ./artifacts/${{env.PROJECT_NAME}}.jar
Вземете програма за качване на артефакти на компилация от Github Marketplace
Прегледайте скрипта си за кодиране
Като цяло скриптът за кодиране за заданията за изграждане, подписване и качване трябва да изглежда като изображението по-долу. Уверете се, че сте коригирали всички грешки, като грешен правопис или грешни прекъсвания на редове в скрипта, така че процесът на подписване да протича гладко.
Дефинирайте вашите променливи на средата
Отидете до местоположението на вашия проект във вашия Github акаунт. Щракнете върху Действия раздел. Кликнете върху Нова тайна на хранилището бутон, за да поставите стойностите за всяка променлива на средата, необходима за подписване на вашия код.
Създайте ново хранилище в командния ред
Продължете до местоположението на вашия проект в Github и копирайте всеки компонент на командата push.
Прокарайте проекта
Включете всеки команден ред за натискане във вашия редактор на код. След завършване кодът автоматично ще бъде изпратен в Github.
Изчакайте артефактът да бъде подписан с eSigner CodeSignTool
Качете подписания файл
Кликнете върху подписания файл, за да го качите.
Примерен канал за действия на Github
Вижте примерния тръбопровод за Github Actions, върху който сме създали github.com/SSLcom/codesigner-github-sample
Други ръководства за интегриране на CI/CD отдалечено подписване
- Интегриране на подписване на облачен код с CircleCI
- Интегриране на подписване на облачен код с GitLab CI
- Интеграция на подписване на облачен код с Jenkins CI
- Интегриране на подписване на облачен код с Travis CI
- Интегриране на подписване на облачен код с Azure DevOps
- Автоматизация на подписването на облачен код с CI/CD услуги
Нуждаете се от персонализирани решения?
С нашите експертни познания и петзвезден екип за поддръжка, ние сме готови и желаем да работим с вас по персонализирани решения или отстъпки за подписване на голям обем на ниво предприятие. Попълнете формата по-долу и ние ще се свържем с вас.