Применение
- имя: Подпишите артефакт с помощью 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 (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
входные
- username: имя пользователя учетной записи SSL.com. (Необходимый)
- password: пароль учетной записи SSL.com (обязательно)
- credential_id: Идентификатор учетных данных для сертификата подписи. Если credential_id опущен и у пользователя есть только один сертификат подписи кода eSigner, CodeSignTool будет использовать его по умолчанию. Если у пользователя есть более одного сертификата подписи кода, этот параметр является обязательным. (Необходимый)
- totp_secret: Секрет OAuth TOTP. Вы можете получить доступ к подробной информации о https://www.ssl.com/how-to/automate-esigner-ev-code-signing (обязательно)
- Путь файла: Путь к подписываемому объекту кода. (Необходимый)
- OUTPUT_PATH: Каталог, в который будут записаны подписанные объекты кода. Если output_path опущен, файл, указанный в -file_path, будет перезаписан подписанным файлом.
Код Java (Maven) Пример рабочего процесса подписания JAR
Подготовьте компоненты рабочего процесса
- Создайте папку Github в вашем редакторе. Включите рабочие процессы в папку и создайте файл yml в папке.
- Назовите свой проект и тип задействованного рабочего процесса.
Название: Сборка и подпись Maven
- Активировать этот рабочий процесс по нажатию
на: нажать
- Создайте переменную среды
- Переменные среды используются, чтобы сделать образцы более читабельными. На приведенном выше снимке экрана примера рабочего процесса PROJECT_NAME, PROJECT_VERSION и MAVEN_VERSION могут быть опущены. Подписание может продолжаться даже с этими упущениями.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Определите задания в вашем редакторе
задания: построить-и-подписать-банку:
- Запустить задание на Ubuntu Runner
запуски: ubuntu-последняя
- Создайте имя. Когда рабочий процесс запускается, это имя регистрируется.
имя: CodeSigner на Java с Maven
Опишите шаги по проверке исходного кода, настройке среды Java и Maven и созданию каталога артефактов.
1) Проверьте исходный код, чтобы рабочий процесс мог получить к нему доступ.
шаги: - использует: action/checkout@v2
2) Настройте среду Java и Maven для использования в рабочем процессе.
- имя: Установить Maven и использовать Java: s4u/setup-maven-action@v1.3.1 с: java-версия: '${{env.JAVA_VERSION}}' maven-версия: '${{env.MAVEN_VERSION}}'
3) Создайте каталог артефактов для хранения подписанных и неподписанных файлов артефактов.
- имя: Создать оболочку каталога: bash запустить: | mkdir ${GITHUB_WORKSPACE}/артефакты mkdir ${GITHUB_WORKSPACE}/packages
4) Создайте проект или решение maven и все его зависимости.
После создания jar-файла скопируйте его в папку «packages» для подписи.
- В этом письменном примере рабочего процесса подписания было создано несколько типов проектов. Вот почему файлы разных типов проектов хранились путем создания подпапок. Подпапка с именем «java» была создана для проектов Java. На демонстрационном снимке экрана выше не было необходимости создавать подпапку с именем «java», поэтому она не была включена в сценарий.
- имя: Построить оболочку Java-проекта: bash run: | mvn чистая установка -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. банка
Описание шагов для заданий «Подписать» и «Загрузить»
- Задание подписи — это шаг, на котором созданные файлы 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 (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
Каталог, в который будут записаны подписанные объекты кода.
output_path: ${GITHUB_WORKSPACE}/артефакты
- Задание загрузки — это шаг, на котором будут загружены артефакты из вашего рабочего процесса, что позволит вам обмениваться данными между заданиями и сохранять данные после завершения рабочего процесса.
- имя: Загрузить подписанные файлы использует: action/upload-artifact@v2 с: именем: ${{env.PROJECT_NAME}}.jar путь: ./artifacts/${{env.PROJECT_NAME}}.jar
Получите загрузчик артефактов сборки из Github Marketplace.
Просмотрите свой сценарий кодирования
В целом сценарий кодирования для заданий сборки, подписи и загрузки должен выглядеть так, как показано на рисунке ниже. Обязательно исправьте все ошибки, такие как неправильное написание или ошибочные разрывы строк в сценарии, чтобы процесс подписания прошел гладко.
Определите свои переменные среды
Перейдите к местоположению вашего проекта в вашей учетной записи Github. Нажмите на Действия Вкладка. Нажмите Новый секрет репозитория кнопку, чтобы поместить значения для каждой переменной среды, необходимой для подписи кода.
Создайте новый репозиторий в командной строке
Перейдите к местоположению вашего проекта на Github и скопируйте каждый компонент команды push.
Подтолкнуть проект
Включите каждую командную строку push в свой редактор кода. По завершении код будет автоматически загружен на Github.
Подождите, пока артефакт будет подписан с помощью eSigner CodeSignTool.
Загрузите подписанный файл
Нажмите на подписанный файл, чтобы загрузить его.
Пример конвейера действий Github
Ознакомьтесь с образцом конвейера Github Actions, который мы создали на github.com/SSLcom/codesigner-github-образец
Другие руководства по интеграции удаленной подписи CI/CD
- Интеграция подписи облачного кода с CircleCI
- Интеграция облачной подписи кода с GitLab CI
- Интеграция облачной подписи кода с Jenkins CI
- Интеграция облачной подписи кода с Travis CI
- Интеграция подписи облачного кода с Azure DevOps
- Облачная автоматизация подписи кода с помощью CI/CD Services
Нужны индивидуальные решения?
Благодаря нашим экспертным знаниям и пятизвездочному персоналу службы поддержки мы готовы работать с вами над индивидуальными решениями или над скидками на подписание крупных объемов на уровне предприятия. Заполните форму ниже, и мы свяжемся с вами.