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

บทความแนะนำนี้สาธิตวิธีที่ eSigner ถูกรวมเข้ากับ GitHub Actions สำหรับการเซ็นชื่อรหัสอัตโนมัติในการตั้งค่าการผสานรวมอย่างต่อเนื่อง/การจัดส่งอย่างต่อเนื่อง (CI/CD)

eSigner เป็นแพลตฟอร์มการเซ็นชื่อบนคลาวด์ของเราที่ได้รับความไว้วางใจจากนักพัฒนาซอฟต์แวร์ทั่วโลกให้ดำเนินการเซ็นชื่อรหัสระดับองค์กรโดยไม่ต้องใช้โทเค็น USB หรือฮาร์ดแวร์พิเศษอื่นๆ  หนึ่งในองค์ประกอบของ eSigner คือ CodeSignTool: ยูทิลิตีบรรทัดคำสั่งที่เน้นความเป็นส่วนตัวซึ่งมีประสิทธิภาพสูงสำหรับนักพัฒนาที่ต้องการทำให้การเซ็นโค้ดเป็นอัตโนมัติ  ส่วนต่อไปนี้สาธิตวิธีที่คุณสามารถเซ็นโค้ด Java (Maven) บน GitHub Actions โดยใช้ eSigner CodeSignTool

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

ORDER NOW

การใช้

- ชื่อ: ลงชื่อสิ่งประดิษฐ์ด้วย CodeSignTool

  การใช้: sslcom/actions-codesigner@พัฒนา

  กับ:

  •      คำสั่ง 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}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • เส้นทางของรหัสวัตถุที่จะลงนาม

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • ไดเร็กทอรีที่จะเขียนโค้ดอ็อบเจ็กต์

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

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

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

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

เตรียมส่วนประกอบของเวิร์กโฟลว์

  1. สร้างโฟลเดอร์ Github บนตัวแก้ไขของคุณ รวมเวิร์กโฟลว์กับโฟลเดอร์และสร้างไฟล์ yml ใต้โฟลเดอร์
    1. ตั้งชื่อโครงการของคุณและประเภทของเวิร์กโฟลว์ที่เกี่ยวข้อง
    ชื่อ: Maven สร้างและลงนาม
     
    1. ทริกเกอร์เวิร์กโฟลว์นี้ด้วยการกด
    บน: กด
     
    1. สร้างตัวแปรสภาพแวดล้อม
    • ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของเวิร์กโฟลว์ตัวอย่าง PROJECT_NAME, PROJECT_VERSION และ MAVEN_VERSION ถูกละเว้นหรือไม่ก็ได้ การลงนามยังคงดำเนินต่อไปได้แม้จะละเว้นเหล่านี้
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. กำหนดงานในบรรณาธิการของคุณ
    งาน: build-and-sign-jar:
     
    1. เรียกใช้งานบน Ubuntu Runner
        วิ่งบน: ubuntu-ล่าสุด
     
    1. สร้างชื่อ เมื่อเวิร์กโฟลว์ทำงาน นี่คือชื่อที่บันทึก
      ชื่อ: CodeSigner บน Java ด้วย Maven
     

ร่างขั้นตอนในการตรวจสอบซอร์สโค้ด การตั้งค่าสภาพแวดล้อม Java และ Maven และการสร้าง Artifact Directory

  1) ตรวจสอบซอร์สโค้ดเพื่อให้เวิร์กโฟลว์สามารถเข้าถึงได้

   ขั้นตอน: - ใช้: actions/checkout@v2
 

  2) ตั้งค่าสภาพแวดล้อม Java และ Maven สำหรับเวิร์กโฟลว์ที่จะใช้

    - ชื่อ: ติดตั้ง Maven และ Java ใช้: s4u/setup-maven-action@v1.3.1 กับ: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'

 

      3) สร้าง Artifact Directory เพื่อจัดเก็บไฟล์ Artifact ที่ลงชื่อและไม่ได้ลงนาม

 - ชื่อ: Create Directory shell: bash run: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/แพ็คเกจ

 

      4) สร้างโครงการหรือโซลูชัน maven และการพึ่งพาทั้งหมด

      หลังจากสร้างไฟล์ jar แล้ว ให้คัดลอกไปยังโฟลเดอร์ 'packages' เพื่อลงนาม

  • ในเวิร์กโฟลว์ตัวอย่างการเซ็นชื่อที่เป็นลายลักษณ์อักษรนี้ มีการสร้างโครงการหลายประเภท นี่คือสาเหตุที่ไฟล์ประเภทโปรเจ็กต์ต่างๆ ถูกเก็บไว้โดยการสร้างโฟลเดอร์ย่อย โฟลเดอร์ย่อยชื่อ 'java' ถูกสร้างขึ้นสำหรับโปรเจ็กต์ Java ในภาพหน้าจอสาธิตด้านบน ไม่จำเป็นต้องสร้างโฟลเดอร์ย่อยชื่อ 'java' ดังนั้นจึงไม่รวมอยู่ในสคริปต์
 - ชื่อ: สร้างเชลล์โปรเจ็กต์ Java: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}} ไห
 

สรุปขั้นตอนสำหรับงาน Sign and Upload

  1. งาน Sign เป็นขั้นตอนที่ไฟล์ JAR (สิ่งประดิษฐ์) ที่สร้างขึ้นจะถูกเซ็นชื่อด้วย CodeSignTool
 - ชื่อ: Sign Artifact ใช้: sslcom/actions-codesigner@develop กับ:

           เซ็นชื่อและรหัสประทับเวลาวัตถุ

คำสั่ง: sign

           ชื่อผู้ใช้บัญชี 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: ${{ความลับ.ES_TOTP_SECRET}}

           เส้นทางของรหัสวัตถุที่จะลงนาม (ไฟล์ DLL, JAR, EXE, MSI vb… )

  file_path: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           ไดเร็กทอรีที่จะเขียนโค้ดอ็อบเจ็กต์

output_path: ${GITHUB_WORKSPACE}/สิ่งประดิษฐ์

 

  1. งานอัปโหลดเป็นขั้นตอนที่สิ่งประดิษฐ์จากเวิร์กโฟลว์ของคุณจะถูกอัปโหลด ช่วยให้คุณสามารถแบ่งปันข้อมูลระหว่างงานและจัดเก็บข้อมูลเมื่อเวิร์กโฟลว์เสร็จสมบูรณ์
 - ชื่อ: อัปโหลดไฟล์ที่ลงนามใช้: actions/upload-artifact@v2 กับ: ชื่อ: ${{env.PROJECT_NAME}}.jar เส้นทาง: ./artifacts/${{env.PROJECT_NAME}}.jar
 

รับตัวอัปโหลดสิ่งประดิษฐ์จาก Github Marketplace

ตรวจสอบสคริปต์การเข้ารหัสของคุณ

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

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

ORDER NOW

กำหนดตัวแปรสภาพแวดล้อมของคุณ

ไปที่ที่ตั้งโครงการของคุณในบัญชี Github คลิก สถานะ แถบ คลิก ความลับของที่เก็บใหม่ ปุ่มเพื่อวางค่าสำหรับตัวแปรสภาพแวดล้อมแต่ละตัวที่จำเป็นในการลงนามโค้ดของคุณ

สร้างที่เก็บใหม่บนบรรทัดคำสั่ง

ดำเนินการไปยังที่ตั้งโครงการของคุณบน Github และคัดลอกแต่ละองค์ประกอบของคำสั่งพุช

ดันโครงการ

รวมบรรทัดคำสั่งพุชแต่ละรายการในตัวแก้ไขโค้ดของคุณ เมื่อเสร็จสิ้น รหัสจะถูกผลักโดยอัตโนมัติบน Github

รอให้สิ่งประดิษฐ์ลงนามด้วย eSigner CodeSignTool

อัปโหลดไฟล์ที่ลงนามแล้ว

คลิกที่ไฟล์ที่ลงนามเพื่ออัปโหลด

หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้แก้ไขข้อผิดพลาดในการพิมพ์หรือตัวแบ่งบรรทัดที่ผิดพลาดในสคริปต์เพื่อให้กระบวนการลงนามทำงานได้อย่างราบรื่น

ตัวอย่างไปป์ไลน์การดำเนินการ Github


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

คู่มือการบูรณาการการลงนามระยะไกล CI/CD อื่นๆ

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

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

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

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

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

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

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

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