การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Travis CI

บทความนี้แสดงวิธีการลงนามโค้ดอัตโนมัติบน Travis CI โดยการผสานรวม eSigner CodeSignTool เข้ากับไปป์ไลน์ของคุณ 

eSigner เป็นแพลตฟอร์มการลงนามโค้ดจากระยะไกลของเราซึ่งมีระดับความปลอดภัยเท่ากับโทเค็น USB และ HSMS แบบเครือข่าย แต่มีประสิทธิภาพและใช้งานง่ายกว่า  ส่วนหนึ่งของชุดเครื่องมือ eSigner คือ CodeSignTool: ยูทิลิตีบรรทัดคำสั่งที่ปลอดภัยซึ่งเหมาะสำหรับการลงนามรหัสองค์กรในสภาพแวดล้อม CI/CD ต่างๆ รวมถึง Travis
SSL.com ของ EV การลงรหัส ใบรับรองจะช่วยปกป้องรหัสของคุณจากการปลอมแปลงโดยไม่ได้รับอนุญาตและประนีประนอมกับการตรวจสอบระดับสูงสุด และมีให้ในราคาเพียง $ 249 al año. คุณยังสามารถ ใช้ใบรับรองการลงนามรหัส EV ของคุณในขนาดต่างๆ ในระบบคลาวด์โดยใช้ eSigner

ORDER NOW

ตัวแปรสภาพแวดล้อม

  • USERNAME: ชื่อผู้ใช้บัญชี SSL.com (ที่จำเป็น)
  • รหัสผ่าน: รหัสผ่านบัญชี SSL.com (จำเป็น)
  • ข้อมูลประจำตัว_ID: รหัสประจำตัวสำหรับใบรับรองการลงนาม หากละเว้น credential_id และผู้ใช้มีใบรับรองการลงชื่อรหัส eSigner เพียงใบเดียว CodeSignTool จะใช้ค่าเริ่มต้นตามนั้น หากผู้ใช้มีใบรับรองการลงนามโค้ดมากกว่าหนึ่งรายการ พารามิเตอร์นี้บังคับ (ที่จำเป็น)
  • TOTP_ความลับ: OAuth TOTP ความลับ คุณสามารถเข้าถึงข้อมูลรายละเอียดเกี่ยวกับ https://www.ssl.com/how-to/automate-esigner-ev-code-signing (จำเป็น)
  • สิ่งแวดล้อม_NAME : สภาพแวดล้อม 'TEST' หรือ 'PROD' (ที่จำเป็น)

ปัจจัยการผลิต

  • input_file_path: เส้นทางของรหัสวัตถุที่จะลงนาม (ที่จำเป็น)
  • output_dir_path: ไดเร็กทอรีที่จะเขียนโค้ดอ็อบเจ็กต์ หากละเว้น output_path ไฟล์ที่ระบุใน -file_path จะถูกเขียนทับด้วยไฟล์ที่ลงนาม

Java Code (Maven) JAR Signing ตัวอย่างเวิร์กโฟลว์

สร้างโครงการ

ภายใต้โครงการสร้างไฟล์สำหรับ Travis

กำหนดองค์ประกอบของเวิร์กโฟลว์

  1. วางสถาปัตยกรรม CPU เพื่อรันงานบน

ซุ้มประตู: amd64

  1. ภาษาเริ่มต้นเพื่อเรียกใช้การทดสอบใน

ภาษา: java

  1. ระบุระบบปฏิบัติการที่จะรันงานบน

ระบบปฏิบัติการ: linux

  1. เขียนการกระจาย Ubuntu ที่จะใช้

dist: ไบโอนิค

  1. กำหนดตัวแปรสภาพแวดล้อมทั่วโลก คุณสมบัติระดับงานแทนที่ตัวแปรส่วนกลาง
  • โปรดทราบว่าจำเป็นต้องใช้ TERM=dumb สำหรับอินสแตนซ์โปรเจ็กต์ Gradle เท่านั้น
  • ภายใต้ ENVIRONMENT_NAME ให้วาง "TEST" สำหรับการลงนามทดสอบ และ "PROD" สำหรับการลงนามจริง

สิ่งแวดล้อม:

  ทั่วโลก:

    – PROJECT_NAME="สวัสดีโลก"

    – PROJECT_VERSION =”0.0.1″

    – TERM = ใบ้

    – ENVIRONMENT_NAME=”ทดสอบ”

  1. ระบุลำดับของขั้นตอน งานทั้งหมดในสเตจเดียวต้องทำให้เสร็จก่อนดำเนินการสเตจถัดไป

ขั้นตอน:

  - สร้าง

  - เข้าสู่ระบบ

ร่างขั้นตอนการสร้าง  

งาน:

  รวมถึง:

        – เวที: สร้าง

  1. ชื่องาน

      ชื่อ: build-maven

  1. การกระจาย Ubuntu ที่จะใช้

      dist: ไบโอนิค

  1. ใช้คำสั่ง docker สำหรับการลงนาม  

      บริการ:

        – นักเทียบท่า

  1. ใช้ dotnet-cli เพื่อสร้างโครงการ

      ภาษา: java

  1. เวอร์ชัน Java เพื่อสร้างโครงการ

      jdk:

      – oraclejdk17

  1. แคช m2 ไดเรกทอรีเพื่อเพิ่มความเร็ว

      แคช:

        ไดเรกทอรี:

        – $บ้าน/.m2

  1. เขียนสคริปต์ Before เพื่อรันก่อนสร้างโครงการ

      before_script:

        # สร้างไดเรกทอรีสำหรับสิ่งประดิษฐ์

        – mkdir -p ${TRAVIS_BUILD_DIR}/สิ่งประดิษฐ์

        – mkdir -p ${TRAVIS_BUILD_DIR}/แพ็คเกจ

        # ตั้งค่าตัวเลือกการสร้าง Maven

        – ส่งออก MAVEN_CLI_OPTS =”–batch-mode –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. เขียนสคริปต์เพื่อสร้างโครงการ
  • ในเวิร์กโฟลว์ตัวอย่างการเซ็นชื่อนี้ มีการสร้างโครงการหลายประเภท นี่คือสาเหตุที่ไฟล์ประเภทโปรเจ็กต์ต่างๆ ถูกเก็บไว้โดยการสร้างโฟลเดอร์ย่อย โฟลเดอร์ย่อยชื่อ 'java' ถูกสร้างขึ้นสำหรับโปรเจ็กต์ Java ในภาพหน้าจอสาธิตด้านบน ไม่จำเป็นต้องสร้างโฟลเดอร์ย่อยชื่อ 'java' ดังนั้นจึงไม่รวมอยู่ในสคริปต์

      สคริปต์:

        # สร้างโครงการ Maven ด้วยตัวเลือก Maven

        – mvn $MAVEN_CLI_OPTS ติดตั้งใหม่ทั้งหมด -f java/pom.xml

         # คัดลอกสิ่งประดิษฐ์ที่สร้างขึ้นไปยังไดเรกทอรีสิ่งประดิษฐ์

        – ซีพี 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. กำหนดตัวแปรสภาพแวดล้อมสำหรับงานเฉพาะ
  • ในภาพหน้าจอด้านบน คำสั่ง sign ถูกกำหนดโดยตรงในสคริปต์สัญญาณและไม่ได้อยู่ภายใต้ตัวแปรสภาพแวดล้อม บีOTH เมธอดสามารถเซ็นชื่ออย่างถูกต้องด้วย TravisCI

      สิ่งแวดล้อม:

        คำสั่ง=”สัญญาณ”

  1. ใช้ dotnet-cli เพื่อสร้างโครงการ

      ภาษา: java

  1. เวอร์ชัน Java เพื่อสร้างโครงการ

      jdk:

      – oraclejdk17

  1. ก่อนรันสคริปต์ก่อนสร้างโครงการ

      before_script:

        # สร้างไดเรกทอรีสำหรับสิ่งประดิษฐ์

        – mkdir -p ${TRAVIS_BUILD_DIR}/สิ่งประดิษฐ์

        – mkdir -p ${TRAVIS_BUILD_DIR}/แพ็คเกจ

     

  1. สคริปต์สำหรับสร้างโครงการ

      สคริปต์:

        # Docker Pull CodeSigner ภาพนักเทียบท่า

        – นักเทียบท่าดึง ghcr.io/sslcom/codesigner:latest

        # ลงนามสิ่งประดิษฐ์ด้วย CodeSigner Docker image

        – docker run -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:latest ${COMMAND}

          -input_file_path=/codesign/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. ใช้เพื่อระบุรายการไฟล์และไดเร็กทอรีที่ควรแนบไปกับงานหากทำสำเร็จ

      พื้นที่ทำงาน:

        ใช้:

          – maven-jar-สิ่งประดิษฐ์

        สร้าง:

          ชื่อ: ลงนาม jar-file

          เส้นทาง:

            # บันทึกสิ่งประดิษฐ์ที่ลงนาม

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

SSL.com ของ EV การลงรหัส ใบรับรองจะช่วยปกป้องรหัสของคุณจากการปลอมแปลงโดยไม่ได้รับอนุญาตและประนีประนอมกับการตรวจสอบระดับสูงสุด และมีให้ในราคาเพียง $ 249 al año. คุณยังสามารถ ใช้ใบรับรองการลงนามรหัส EV ของคุณในขนาดต่างๆ ในระบบคลาวด์โดยใช้ eSigner

ORDER NOW

กำหนดตัวแปรสภาพแวดล้อม

ไปที่ Travis แล้วคลิก การตั้งค่า ปุ่ม

เพิ่มค่าสำหรับแต่ละตัวแปร

เลื่อนลงไปที่ ตัวแปรสภาพแวดล้อม ส่วนแล้วคลิกปุ่มเพิ่มเพื่อเพิ่มค่าให้กับตัวแปรแต่ละตัว

สร้าง Github repo

ค้นหาคำสั่งพุชบน Github

เขียนคำสั่งพุชที่เทอร์มินัลบนตัวแก้ไขของคุณ

รอให้งานสร้างเสร็จ

บน Travis งานสร้างควรเริ่มต้นโดยอัตโนมัติหลังจากที่คุณกดรหัสแล้ว

เริ่มขั้นตอนการเซ็นโค้ด

คลิก ลงชื่อ ส่วนสำหรับ CodeSignTool เพื่อเริ่มกระบวนการลงนาม

รอให้เครื่องเสมือนทำการบูทเสร็จ

ยืนยันว่าการเซ็นรหัสสำเร็จหรือไม่

คุณสามารถอ้างถึง SSL.com ที่เก็บ Github ซึ่งมีซอร์สโค้ดของอิมเมจนักเทียบท่าและอธิบายวิธีใช้งาน: https://github.com/SSLcom/ci-images

ตัวอย่าง Travis CI Pipeline

ตรวจสอบตัวอย่างไปป์ไลน์ Travis CI ที่เราสร้างขึ้น github.com/SSLcom/codesigner-travisci-sample

คู่มือการรวมการเซ็นชื่อระยะไกลสำหรับบริการ CI/CD อื่นๆ

ต้องการโซลูชันที่กำหนดเองหรือไม่ 

ด้วยความรู้จากผู้เชี่ยวชาญและเจ้าหน้าที่สนับสนุนระดับห้าดาว เราพร้อมและยินดีที่จะทำงานร่วมกับคุณเกี่ยวกับโซลูชันแบบกำหนดเองหรือส่วนลดการลงนามจำนวนมากในระดับองค์กร กรอกแบบฟอร์มด้านล่าง แล้วเราจะติดต่อกลับไป

สมัครรับจดหมายข่าวของ SSL.com

อย่าพลาดบทความและการปรับปรุงใหม่จาก SSL.com

รับทราบข้อมูลและปลอดภัย

SSL.com เป็นผู้นำระดับโลกในด้านความปลอดภัยทางไซเบอร์ PKI และใบรับรองดิจิทัล ลงทะเบียนเพื่อรับข่าวสารอุตสาหกรรม เคล็ดลับ และประกาศผลิตภัณฑ์ล่าสุดจาก SSL.com.

เราชอบความคิดเห็นของคุณ

ทำแบบสำรวจของเราและแจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับการซื้อครั้งล่าสุดของคุณ