Travis CI와 클라우드 코드 서명 통합

관련 콘텐츠

계속 배우고 싶으세요?

ssl.com의 뉴스 레터를 구독하고 정보를 유지하고 안전하게 보관하십시오.

이 문서에서는 eSigner CodeSignTool을 파이프라인에 통합하여 Travis CI에서 자동화된 코드 서명을 수행하는 방법을 보여줍니다. 

eSigner는 USB 토큰 및 Networked HSMS와 동일한 수준의 보안을 제공하지만 보다 효율적이고 직관적인 방식으로 제공하는 원격 코드 서명 플랫폼입니다.  eSigner 툴킷의 일부는 CodeSignTool: Travis를 포함한 다양한 CI/CD 환경에서 엔터프라이즈 코드 서명을 수행하는 데 이상적인 보안 명령줄 유틸리티입니다.
SSL.com EV 코드 서명 인증서는 최고 수준의 유효성 검사를 통해 무단 변조 및 손상으로부터 코드를 보호하는 데 도움이 되며 최소한의 비용으로 사용할 수 있습니다. 연간 $ 249. 당신은 또한 수 EV 코드 서명 인증서를 대규모로 사용 eSigner를 사용하여 클라우드에서

지금 주문하세요

환경 변수

  • 사용자 이름: SSL.com 계정 사용자 이름. (필수의)
  • PASSWORD: SSL.com 계정 비밀번호(필수)
  • CREDENTIAL_ID: 인증서 서명을 위한 자격 증명 ID입니다. credential_id가 생략되고 사용자에게 하나의 eSigner 코드 서명 인증서만 있는 경우 CodeSignTool은 기본적으로 이 인증서를 사용합니다. 사용자에게 둘 이상의 코드 서명 인증서가 있는 경우 이 매개변수는 필수입니다. (필수의)
  • TOTP_비밀: OAuth TOTP 비밀. 에 대한 자세한 정보에 액세스할 수 있습니다. https://www.ssl.com/how-to/automate-esigner-ev-code-signing (필수)
  • 환경_이름 : 'TEST' 또는 'PROD' 환경. (필수의)

입력

  • 입력_파일_경로: 서명할 코드 개체의 경로입니다. (필수의)
  • 출력_디렉터_경로: 서명된 코드 개체가 작성될 디렉터리입니다. output_path를 생략하면 -file_path에 지정된 파일을 서명된 파일로 덮어씁니다.

Java 코드(Maven) JAR 서명 예제 워크플로

프로젝트 만들기

프로젝트 아래에서 Travis용 파일을 만듭니다.

워크플로의 구성 요소 정의

  1. 작업을 실행할 CPU 아키텍처 배치

아치: amd64

  1. 테스트를 실행할 기본 언어

언어: 자바

  1. 작업을 실행할 운영 체제 지정

운영체제: 리눅스

  1. 사용할 Ubuntu 배포판 작성

dist: 바이오닉

  1. 환경 변수를 전역으로 정의합니다. 작업 수준 속성은 전역 변수를 재정의합니다.
  • TERM=dumb는 Gradle 프로젝트 인스턴스에만 필요합니다.
  • ENVIRONMENT_NAME 아래에 테스트 서명을 위해 "TEST"를 배치하고 라이브 서명을 위해 "PROD"를 배치합니다.

환경:

  글로벌 :

    – PROJECT_NAME="HelloWorld"

    – PROJECT_VERSION=”0.0.1″

    – 용어 = 바보

    – ENVIRONMENT_NAME=”테스트”

  1. 단계의 순서를 지정합니다. 한 단계의 모든 작업은 다음 단계가 실행되기 전에 완료되어야 합니다.

단계:

  - 짓다

  - 징후

빌드 단계 개요  

작업:

  과 같습니다 :

        – 단계: 빌드

  1. 작업 이름

      이름: 빌드 메이븐

  1. 사용할 Ubuntu 배포판

      dist: 바이오닉

  1. 서명에 docker 명령 사용  

      서비스:

        – 도커

  1. dotnet-cli를 사용하여 프로젝트 빌드

      언어: 자바

  1. 프로젝트를 빌드하기 위한 Java 버전

      JDK :

      – 오라클jdk17

  1. 속도를 높이기 위해 m2 디렉토리를 캐시하십시오.

      캐시 :

        디렉토리:

        – $HOME/.m2

  1. 프로젝트를 빌드하기 전에 실행할 Before 스크립트 작성

      이전 스크립트:

        # 아티팩트를 위한 디렉토리 생성

        – mkdir -p ${TRAVIS_BUILD_DIR}/아티팩트

        – mkdir -p ${TRAVIS_BUILD_DIR}/패키지

        # 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. 작업 이름 쓰기

      이름: 서명 jar 파일

  1. 사용할 Ubuntu 배포판 배치

      dist: 바이오닉

  1. 서명에 Docker 명령 사용  

      서비스:

        – 도커

     

  1. 특정 작업에 대한 환경 변수를 정의합니다.
  • 위의 스크린샷에서 sign 명령은 환경 변수가 아니라 sign 스크립트에서 직접 정의되었습니다. 비OTH 메서드는 TravisCI로 올바르게 서명할 수 있습니다.

      환경:

        명령 = "기호"

  1. dotnet-cli를 사용하여 프로젝트 빌드

      언어: 자바

  1. 프로젝트를 빌드하기 위한 Java 버전

      JDK :

      – 오라클jdk17

  1. 프로젝트를 빌드하기 전에 실행할 스크립트 전

      이전 스크립트:

        # 아티팩트를 위한 디렉토리 생성

        – mkdir -p ${TRAVIS_BUILD_DIR}/아티팩트

        – mkdir -p ${TRAVIS_BUILD_DIR}/패키지

     

  1. 프로젝트를 빌드하는 스크립트

      스크립트:

        # Docker 풀 CodeSigner Docker 이미지

        – 도커 풀 ghcr.io/sslcom/codesigner:latest

        # CodeSigner Docker 이미지로 아티팩트 서명

        – 도커 실행 -i –rm –dns 8.8.8.8 –네트워크 호스트 –볼륨 ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –볼륨 ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e USERNAME=${USERNAME} -e 비밀번호=${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}.jar -output_dir_path=/codesign/output

  1. 성공할 경우 작업에 첨부해야 하는 파일 및 디렉토리 목록을 지정하는 데 사용됩니다.

      작업 공간:

        용도:

          – maven-jar-artifacts

        창조하다:

          이름: 서명된 jar 파일

          경로 :

            # 서명된 아티팩트 저장

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

SSL.com EV 코드 서명 인증서는 최고 수준의 유효성 검사를 통해 무단 변조 및 손상으로부터 코드를 보호하는 데 도움이 되며 최소한의 비용으로 사용할 수 있습니다. 연간 $ 249. 당신은 또한 수 EV 코드 서명 인증서를 대규모로 사용 eSigner를 사용하여 클라우드에서

지금 주문하세요

환경 변수 정의

Travis로 이동하여 설정 단추

각 변수에 대한 값 추가

아래로 스크롤하여 환경 변수 섹션을 클릭하고 추가 버튼을 클릭하여 각 변수에 대한 값을 추가합니다.

Github 리포지토리 만들기

Github에서 푸시 명령을 찾으십시오.

편집기의 터미널에서 푸시 명령 작성

빌드 작업이 완료될 때까지 기다립니다.

Travis에서 코드를 푸시한 후 빌드 작업이 자동으로 시작되어야 합니다.

코드 서명 단계 시작

클릭 기호 섹션 코드사인도구 서명 프로세스를 시작하려면

가상 머신이 부팅을 마칠 때까지 기다립니다.

코드 서명 성공 여부 확인

다음을 참조 할 수 있습니다. SSL.com 도커 이미지의 소스 코드를 포함하고 사용 방법을 설명하는 Github 리포지토리: https://github.com/SSLcom/ci-images

샘플 Travis CI 파이프라인

우리가 생성한 샘플 Travis CI 파이프라인을 확인하십시오. github.com/SSLcom/codesigner-travisci-sample

기타 CI/CD 서비스 원격 서명 통합 가이드

맞춤형 솔루션이 필요하십니까? 

우리의 전문 지식과 XNUMX성급 지원 직원을 통해 맞춤형 솔루션 또는 엔터프라이즈 수준의 대량 서명 할인에 대해 귀하와 협력할 준비가 되어 있습니다. 아래 양식을 작성해 주시면 연락드리겠습니다.

최신 정보를 얻고 보안을 유지하세요

SSL.com 사이버 보안 분야의 글로벌 리더입니다. PKI 그리고 디지털 인증서. 최신 업계 뉴스, 팁, 제품 공지 사항을 받아보려면 등록하세요. SSL.com.

우리는 귀하의 피드백을 환영합니다

설문조사에 참여하여 최근 구매에 대한 의견을 알려주세요.