Руководство по интеграции подписи в облаке Azure DevOps

Это руководство о том, как Azure DevOps можно интегрировать с eSigner CodeSignTool для выполнения автоматической подписи кода.

CodeSignTool — это утилита командной строки, которая подходит для облачных процессов подписи кода и легко интегрируется с различными платформами CI/CD. Он является частью eSigner: нашей службы удаленной подписи, которая предлагает эффективный, безопасный и удобный подход к подписи кода.

SSL.com's EV Подписание кода сертификаты помогают защитить ваш код от несанкционированного вмешательства и компрометации благодаря высочайшему уровню проверки и доступны всего за $ 249 в год. Вы также можете используйте свой сертификат подписи кода EV в масштабе в облаке с помощью eSigner.

ЗАКАЗАТЬ СЕЙЧАС

Переменные среды

  • 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 (обязательно)
  • ИМЯ_ОКРУЖАЮЩЕЙ СРЕДЫ : Среда 'TEST' или 'PROD'. (Необходимый)

 

входные

  • путь_входного_файла: Путь к подписываемому объекту кода. (Необходимый)
  • выходной_каталог_путь: Каталог, в который будут записаны подписанные объекты кода. Если output_path опущен, файл, указанный в -file_path, будет перезаписан подписанным файлом.

Создайте проект на visualstudio.com

Создайте новый файл .yml в редакторе кода.

Установите триггеры интеграции и переменные среды

Триггеры непрерывной интеграции

курок:

  - никто

 

Глобально определяет переменные среды. Свойство уровня задания переопределяет глобальные переменные

переменные:

  buildConfiguration: «Выпуск»

Группировать задания по этапам

Напишите шаги для этапа сборки. Все работы на одном этапе должны быть завершены до выполнения следующего этапа.

этапы:

  – этап: сборка

    # Когда рабочий процесс запускается, это имя регистрируется

    отображаемое имя: сборка

    вакансии:

      - работа:

        бассейн:

           Запуск задания на виртуальных машинах Windows

          vmImage: «последняя версия Windows»

        действия:

           Установите Дотнет 6.0.x

        – задача: UseDotNet@2

          displayName: «Установить пакет SDK для .NET Core»

          входы:

            версия: '6.0.x'

            выполнитьMultiLevelLookup: true

            includePreviewVersions: правда

       

            Восстановить проект Dotnet

        – задача: DotNetCoreCLI@2

          отображаемое имя: Восстановить

          входы:

            команда: «восстановить»

 

           Сборка проекта dotnet с конфигурацией Release

        – задача: DotNetCoreCLI@2

          отображаемое имя: сборка

          входы:

            команда: построить

            проекты: HelloWorld.csproj

            аргументы: '–configuration $(buildConfiguration)'

 

           Создание каталогов для подписанных артефактов

        - powershell: New-Item -ItemType Directory -Path ./artifacts

          displayName: 'Созданные каталоги для артефактов'

 

           Создание каталогов для подписанных пакетов

        - powershell: New-Item -ItemType Directory -Path ./packages

          displayName: 'Созданные каталоги для пакетов'

 

           Скопируйте артефакт в путь для подписи

        - powershell: Copy-Item ./bin/Release/netcoreapp3.1/HelloWorld-0.0.1.dll -Destination ./packages/HelloWorld.dll

          displayName: «Скопировать созданные артефакты в каталог пакетов»

 

           Сохраните артефакт, чтобы использовать задание подписи

        – задача: PublishBuildArtifacts@1

          displayName: 'Сохранить как подписанный артефакт для скачивания'

          входы:

            путь к публикации: ./packages/HelloWorld.dll

            имя_артефакта: HelloWorld.dll

Напишите шаги для этапа Sign

– этап: Знак

    # Когда рабочий процесс запускается, это имя регистрируется

    отображаемое имя: Знак

    вакансии:

    - работа:

      бассейн:

         Запустить задание на виртуальных машинах Ubuntu

        vmImage: «Ubuntu-последняя»

      действия:

         Создание каталогов для подписанных артефактов

      – скрипт: mkdir -p ./артефакты && mkdir -p ./пакеты

        displayName: «Созданы каталоги для артефактов и пакетов»

 

         Скачать артефакт для подписи

      – задача: DownloadPipelineArtifact@2

        входы:

          Артефакт: HelloWorld.dll

          путь загрузки: ./packages

 

         Установите Докер 17.09.0-ce

      – задача: DockerInstaller@0

        displayName: установщик Docker

        входы:

          версия докера: 17.09.0-ce

          Тип выпуска: стабильный

 

         Docker Pull CodeSigner Образ Docker

      – скрипт: docker pull ghcr.io/sslcom/codesigner:latest

        displayName: 'Docker Pull CodeSigner Docker Image'

         Подписать артефакт с помощью образа докера CodeSigner

      – скрипт: docker run -i –rm –dns 8.8.8.8 –сетевой хост –volume $PWD/packages:/codesign/examples –volume $PWD/artifacts:/codesign/output

                -e ИМЯ ПОЛЬЗОВАТЕЛЯ=$(ИМЯ ПОЛЬЗОВАТЕЛЯ) -e ПАРОЛЬ=$(ПАРОЛЬ) -e ​​CREDENTIAL_ID=$(CREDENTIAL_ID) -e TOTP_SECRET=$(TOTP_SECRET)

Если в пароле есть специальные символы, то он должен быть в кавычках.

                -e ENVIRONMENT_NAME=$(ENVIRONMENT_NAME) ghcr.io/sslcom/codesigner:последний знак -input_file_path=/codesign/examples/HelloWorld.dll

                -output_dir_path=/дизайн кода/выход

        displayName: 'Подписать артефакт с помощью образа докера CodeSigner'

 

         Сохранить подписанный артефакт для скачивания

      – задача: PublishBuildArtifacts@1

        displayName: 'Сохранить подписанный артефакт для скачивания'

        входы:

          путь к публикации: ./artifacts/HelloWorld.dll

          имя_артефакта: HelloWorld.dll

Создайте новый файл .gitignore

Печатать:

бункер

об

.vscode

В строке сообщений введите Created pipe.yml и нажмите кнопку Совершать кнопка

SSL.com's EV Подписание кода сертификаты помогают защитить ваш код от несанкционированного вмешательства и компрометации благодаря высочайшему уровню проверки и доступны всего за $ 249 в год. Вы также можете используйте свой сертификат подписи кода EV в масштабе в облаке с помощью eSigner.

ЗАКАЗАТЬ СЕЙЧАС

Нажмите кнопку Синхронизировать изменения кнопка

Перейдите на сайт visualstudio.com и нажмите Операции РЕПО на приборной панели

Обновите страницу, чтобы увидеть файл yml

Нажмите Трубопроводы на приборной панели

Затем нажмите Создать конвейер

Щелкните Azure Repos Git.

Выберите файл YAML

Нажмите Переменные затем следуют Новая переменная

Поместите значение для каждой переменной среды и нажмите кнопку OK кнопка

Щелкните знак +, чтобы продолжить добавление каждой переменной.

После размещения всех переменных приступайте к созданию конвейера.

Запустите свой конвейер

Нажмите Трубопроводы на приборной панели. Щелкните значок с тремя точками (дополнительные параметры) на конвейере. Нажмите Запустить конвейер, Наконец, нажмите Run .

Нажмите «Сборка», чтобы начать этап сборки.

Проверьте, успешно ли выполнено каждое задание на этапе сборки.

Щелкните стрелку раскрывающегося списка рядом с работа чтобы увидеть статус каждого задания сборки

Начните этап подписания, нажав работа

Проверьте, успешно ли выполнен каждый шаг в процессе подписания.

Дважды проверьте, успешно ли выполнены этапы сборки и подписи.

Вы можете обратиться к SSL.com Репозиторий Github, который содержит исходные коды образа докера и описывает, как его использовать: https://github.com/SSLcom/ci-images 

Пример конвейера Azure DevOps

Ознакомьтесь с образцом конвейера Azure DevOps, который мы создали на github.com/SSLcom/codesigner-azuredevops-образец

Другие руководства по интеграции удаленной подписи

Нужны индивидуальные решения? 

Благодаря нашим экспертным знаниям и пятизвездочному персоналу службы поддержки мы готовы работать с вами над индивидуальными решениями или над скидками на подписание крупных объемов на уровне предприятия. Заполните форму ниже, и мы свяжемся с вами.

Twitter
что его цель
LinkedIn
Reddit.
Эл. адрес

Будьте в курсе и будьте в безопасности

SSL.com является мировым лидером в области кибербезопасности, PKI и цифровые сертификаты. Подпишитесь, чтобы получать последние новости отрасли, советы и анонсы продуктов от SSL.com.

Мы будем рады вашим отзывам

Пройдите наш опрос и поделитесь с нами своими мыслями о своей недавней покупке.