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

นี่คือบทช่วยสอนเกี่ยวกับวิธีการเซ็นโค้ดอัตโนมัติบน GitLab CI โดยใช้ eSigner CodeSignTool 

CodeSignTool เป็นยูทิลิตีบรรทัดคำสั่งที่ปลอดภัยซึ่งเป็นส่วนหนึ่งของ eSigner: สภาพแวดล้อมการลงนามโค้ดบนคลาวด์ของเราซึ่งเป็นประโยชน์ต่อผู้เผยแพร่ซอฟต์แวร์และนักพัฒนาด้วยความสามารถในการดำเนินการลงนามโค้ดขององค์กรได้อย่างปลอดภัยและมีประสิทธิภาพในลักษณะที่ไม่ซับซ้อน  เวิร์กโฟลว์ตัวอย่างด้านล่างแสดงรหัส .NET DLL ที่ลงนามบน GitLab CI ด้วย eSigner

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 จะถูกเขียนทับด้วยไฟล์ที่ลงนาม

.NET Code DLL ตัวอย่างการเซ็นชื่อเวิร์กโฟลว์

สร้างไฟล์ yml

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

ขั้นตอน: - สร้าง - sign
 

กำหนดตัวแปรสภาพแวดล้อมทั่วโลก คุณสมบัติระดับงานแทนที่ตัวแปรส่วนกลาง

  • ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของเวิร์กโฟลว์ตัวอย่าง PROJECT_NAME, PROJECT_VERSION และ DOTNET_VERSION ถูกละเว้นหรือไม่ก็ได้ การลงนามยังคงสามารถดำเนินการได้โดยละเว้นเหล่านี้  
  • ภายใต้ ENVIRONMENT_NAME ให้วาง "TEST" สำหรับการลงนามทดสอบ และ "PROD" สำหรับการลงนามจริง
ตัวแปร: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
 

กำหนด สร้างเวที

ด้านล่างนี้คือคำจำกัดความของงานของคุณในการสร้าง dll artifact

สร้าง dotnet:

 

  1. กำหนดว่างานจะดำเนินการในขั้นใด
  เวที: สร้าง

 

  1. วางชื่อเต็มของภาพที่ควรใช้ ควรมีส่วนของ Registry หากจำเป็น
 ภาพ: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. กำหนดสคริปต์ที่ควรรัน *ก่อน* งาน สามารถตั้งค่าได้ทั่วโลกหรือต่องาน
before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. กำหนดเชลล์สคริปต์ที่รันโดยรันเนอร์ สร้างสิ่งประดิษฐ์ DLL
สคริปต์: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ PROJECT_NAME}.dll

 

  1. ระบุรายการไฟล์และไดเร็กทอรีที่ควรแนบไปกับงานหากทำสำเร็จ
  • 'หมดอายุ_in' คุณสมบัติอนุญาตให้ลบไฟล์หลังจากช่วงระยะเวลาหนึ่ง การใช้งานเป็นทางเลือก นี่คือสาเหตุที่ภาพหน้าจอของเวิร์กโฟลว์ตัวอย่างด้านบนไม่แสดงคุณสมบัตินี้
สิ่งประดิษฐ์: เส้นทาง: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 นาที
 

กำหนดขั้นตอนสัญญาณ

ด้านล่างนี้คือคำจำกัดความของงานของคุณเพื่อลงนาม dll artifact

sign-dotnet-สิ่งประดิษฐ์:

 

  1. กำหนดว่างานจะดำเนินการในขั้นใด
  เวที: ป้าย

 

  1. วางชื่อเต็มของภาพที่ควรใช้ ควรมีส่วนของ Registry หากจำเป็น
 ภาพ: นักเทียบท่า:19.03.0

 

  1. กำหนดบริการ ซึ่งคล้ายกับพร็อพเพอร์ตี้ "รูปภาพ" แต่จะลิงก์บริการที่ระบุกับคอนเทนเนอร์ "รูปภาพ"
บริการ: - นักเทียบท่า:19.03.0-dind

 

  1. กำหนดตัวแปรสภาพแวดล้อมสำหรับงานเฉพาะ
  • ในภาพหน้าจอด้านบน คำสั่ง sign ถูกกำหนดโดยตรงในสคริปต์สัญญาณและไม่ได้อยู่ภายใต้ตัวแปรสภาพแวดล้อม บีวิธีอื่นสามารถลงนามอย่างถูกต้องด้วย TravisCI
  ตัวแปร: คำสั่ง: "สัญญาณ"

 

  1. กำหนดสคริปต์ที่ควรรัน *ก่อน* งาน สามารถตั้งค่าได้ทั่วโลกหรือต่องาน
  before_script: - mkdir -p ${CI_PROJECT_DIR}/artifacts - mkdir -p ${CI_PROJECT_DIR}/packages

 

  1. วางสคริปต์เชลล์ที่รันโดยนักวิ่ง ลงชื่อ .NET dll สิ่งประดิษฐ์ด้วย CodeSignTool Docker Image
สคริปต์: - นักเทียบท่าดึง ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${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}.dll -output_dir_path=/codesign/output

 

  1. เขียนสคริปต์ที่สามารถใช้เพื่อระบุรายการไฟล์และไดเร็กทอรีที่ควรแนบไปกับงานหากทำสำเร็จ
สิ่งประดิษฐ์: เส้นทาง: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 วัน

 

  1. ระบุรายชื่องานจากขั้นตอนก่อนหน้านี้ที่ควรโหลดสิ่งประดิษฐ์
การพึ่งพา: - build-dotnet

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

ORDER NOW

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

สร้างที่เก็บ

อ้างถึงคำสั่งบรรทัดคำสั่งบน Gitlab ตามที่เห็นในภาพหน้าจอด้านล่าง

ดันโฟลเดอร์ของคุณ

ทำได้โดยคลิก สถานีปลายทาง ในเมนู ตามด้วย เทอร์มินัลใหม่.

พิมพ์สคริปต์พุชบนเทอร์มินัลของคุณเพื่อส่งโครงการ 

คลิกปุ่มสร้าง

หลังจากทริกเกอร์ไปป์ไลน์ ให้ดำเนินการสร้าง

ตรวจสอบว่าสร้างสำเร็จหรือไม่  

เริ่มต้นเวทีสัญญาณ

ดำเนินการลงนามในสิ่งประดิษฐ์

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

ตอนนี้คุณสามารถดาวน์โหลดไฟล์ที่ลงนามแล้ว

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

ตัวอย่าง Gitlab CI Pipeline

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

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

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

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

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

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

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

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

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

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