Интегриране на подписване на облачен код с Travis CI

Тази статия показва как можете да извършвате автоматизирано подписване на код на Travis CI чрез интегриране на eSigner CodeSignTool във вашия конвейер. 

eSigner е нашата платформа за дистанционно подписване на код, която осигурява същото ниво на сигурност като USB токените и мрежовия HSMS, но по по-ефективен и интуитивен начин.  Част от инструментариума eSigner е CodeSignTool: защитена помощна програма за команден ред, която е идеална за извършване на корпоративно подписване на код в различни CI/CD среди, включително Travis.
SSL.com EV Подписване на код сертификатите помагат за защитата на вашия код от неоторизирано подправяне и компрометиране с най-високо ниво на валидиране и са достъпни само за малко $ 249 годишно. Можете също така да използвайте вашия EV сертификат за подписване на код в мащаб в облака с помощта на eSigner.

ПОРЪЧАЙ СЕГА

Променливи на околната среда

  • 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, ще бъде презаписан с подписания файл.

Java Code (Maven) Примерен работен процес за подписване на JAR

Създайте проект

Под проекта създайте файл за Travis

Определете компонентите на работния процес

  1. Поставете CPU архитектурата, върху която да стартирате заданието

арка: amd64

  1. Език по подразбиране за провеждане на тестове

език: java

  1. Посочете операционната система, на която да се изпълнява задачата

os: linux

  1. Напишете дистрибуцията на Ubuntu, която ще се използва

dist: бионичен

  1. Дефинирайте променливите на средата глобално. Свойството на ниво работа отменя глобалните променливи.
  • Обърнете внимание, че TERM=dumb е необходим само за екземпляри на проект Gradle.
  • Под ENVIRONMENT_NAME поставете „TEST“ за тестово подписване и „PROD“ за подписване на живо.

околна среда:

  глобален:

    – PROJECT_NAME=”HelloWorld”

    – PROJECT_VERSION=”0.0.1″

    – СРОК=тъп

    – ENVIRONMENT_NAME=”ТЕСТ”

  1. Посочете реда на етапите. Всички задачи в един етап трябва да бъдат завършени, преди да се изпълни следващият етап.

етапи:

  – изграждане

  - знак

Очертайте етапа на изграждане  

работни места:

  включват:

        – етап: изграждане

  1. Името на работата

      име: build-maven

  1. Дистрибуцията на Ubuntu, която да използвате

      dist: бионичен

  1. Използвайте командата docker за подписване  

      услуги:

        – докер

  1. Използвайте dotnet-cli за изграждане на проекта

      език: java

  1. Java версия за изграждане на проекта

      JDK:

      – oraclejdk17

  1. Кеширайте m2 директория, за да ускорите

      кеша:

        директории:

        – $HOME/.m2

  1. Напишете скрипта Before, който да стартирате, преди да изградите проекта

      преди_скрипт:

        # Създаване на директории за артефакти

        – mkdir -p ${TRAVIS_BUILD_DIR}/артефакти

        – mkdir -p ${TRAVIS_BUILD_DIR}/packages

        # Задайте опции за изграждане на Maven

        – експорт MAVEN_CLI_OPTS=”–пакетен режим –грешки –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Напишете скрипта за изграждане на проекта.
  • В този примерен работен поток за подписване бяха създадени множество типове проекти. Ето защо файловете от различни типове проекти се съхраняват чрез създаване на подпапки. Създадена е подпапка с име „java“ за Java проекти. В демонстрационния скрийншот по-горе не беше необходимо да се създава подпапка с име „java“, така че това не беше включено в скрипта.

      скрипт:

        # Изградете проект на Maven с опции на Maven

        – mvn $MAVEN_CLI_OPTS чиста инсталация -f java/pom.xml

         # Копиране на изградени артефакти в директория с артефакти

        – cp java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Очертайте как да посочите списък с файлове и директории, които трябва да бъдат прикачени към заданието, ако то успее.

      работни пространства:

        създавам:

          име: maven-jar-artifacts

          пътеки:

            # Запазете артефакт, за да използвате задача за подписване

            – ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

Очертайте етапа на знака

 – етап: знак

  1. Напишете името на работата

      име: sign-jar-file

  1. Поставете дистрибуцията на Ubuntu, която да използвате

      dist: бионичен

  1. Използвайте командата Docker за подписване  

      услуги:

        – докер

     

  1. Дефинирайте променливи на средата за конкретни задачи.
  • На екранната снимка по-горе командата за знак е дефинирана директно в скрипта за знак, а не под променливите на средата. бOTH методи могат да подписват правилно с TravisCI.

      околна среда:

        COMMAND=”знак”

  1. Използвайте dotnet-cli за изграждане на проекта

      език: java

  1. Java версия за изграждане на проекта

      JDK:

      – oraclejdk17

  1. Скриптът преди да се изпълни преди изграждането на проекта

      преди_скрипт:

        # Създаване на директории за артефакти

        – mkdir -p ${TRAVIS_BUILD_DIR}/артефакти

        – mkdir -p ${TRAVIS_BUILD_DIR}/packages

     

  1. Скрипт за изграждане на проекта

      скрипт:

        # Docker Pull CodeSigner Докер изображение

        – изтегляне на докер ghcr.io/sslcom/codesigner:последно

        # Подпишете артефакт с изображение на CodeSigner Docker

        – docker run -i –rm –dns 8.8.8.8 –мрежов хост –том ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –том ${TRAVIS_BUILD_DIR}/артефакти:/codesign/изход

          -e ПОТРЕБИТЕЛСКО ИМЕ=${ПОТРЕБИТЕЛСКО ИМЕ} -e ПАРОЛА=${ПАРОЛА} -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}.jar -output_dir_path=/codesign/output

  1. Използва се за указване на списък с файлове и директории, които трябва да бъдат прикачени към заданието, ако то успее.

      работни пространства:

        използвате:

          – maven-jar-артефакти

        създавам:

          име: подписан-jar-файл

          пътеки:

            # Запазване на подписан артефакт

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

SSL.com EV Подписване на код сертификатите помагат за защитата на вашия код от неоторизирано подправяне и компрометиране с най-високо ниво на валидиране и са достъпни само за малко $ 249 годишно. Можете също така да използвайте вашия EV сертификат за подписване на код в мащаб в облака с помощта на eSigner.

ПОРЪЧАЙ СЕГА

Дефинирайте променливите на средата

Отидете до Travis и щракнете върху Настройки бутон

Добавете стойността за всяка променлива

Превъртете надолу до Променливи на околната среда и щракнете върху бутона Добавяне, за да добавите стойността за всяка променлива

Създайте репо Github

Потърсете push командите в Github

Напишете командите за натискане на терминал на вашия редактор

Изчакайте работата по изграждането да приключи

При Travis заданието за изграждане трябва да започне автоматично, след като сте натиснали кода.

Започнете етапа на подписване на кода

Щракнете върху знак раздел за CodeSignTool за да започнете процеса на подписване

Изчакайте вашата виртуална машина да завърши зареждането

Потвърдете дали подписването на кода е успешно

Можете да се обърнете към SSL.com Github хранилище, което съдържа изходните кодове на докер изображението и описва как да го използвате: https://github.com/SSLcom/ci-images

Примерен тръбопровод Travis CI

Вижте примерния тръбопровод Travis CI, върху който сме създали github.com/SSLcom/codesigner-travisci-sample

Други ръководства за интегриране на отдалечено подписване на CI/CD услуга

Нуждаете се от персонализирани решения? 

С нашите експертни познания и петзвезден екип за поддръжка, ние сме готови и желаем да работим с вас по персонализирани решения или отстъпки за подписване на голям обем на ниво предприятие. Попълнете формата по-долу и ние ще се свържем с вас.

Абонирайте се за бюлетина на SSL.com

Не пропускайте нови статии и актуализации от SSL.com

Бъдете информирани и защитени

SSL.com е глобален лидер в киберсигурността, PKI и цифрови сертификати. Регистрирайте се, за да получавате най-новите новини от индустрията, съвети и съобщения за продукти от SSL.com.

Ще се радваме на вашите отзиви

Попълнете нашата анкета и ни кажете какво мислите за скорошната си покупка.