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

บทช่วยสอนนี้แสดงให้เห็นว่า eSigner ถูกรวมเข้ากับ CircleCI สำหรับการเซ็นชื่อรหัสอัตโนมัติอย่างไร

eSigner คือสภาพแวดล้อมระบบคลาวด์ของ SSL.com สำหรับการลงชื่อรหัส คีย์การเซ็นชื่อและใบรับรองได้รับการโฮสต์อย่างปลอดภัยในคลาวด์โดย SSL.com และสามารถเข้าถึงได้สำหรับการเซ็นชื่อจากอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต จึงทำให้ eSigner เป็นหนึ่งในแพลตฟอร์มที่ดีที่สุดสำหรับการเซ็นชื่อรหัสองค์กร ชุดเครื่องมือ eSigner ประกอบด้วย CodeSignTool ซึ่งเป็น ยูทิลิตี้บรรทัดคำสั่งสำหรับ การลงนามรหัส EV ใบรับรองและเหมาะอย่างยิ่งสำหรับการสร้างกระบวนการลงนามอัตโนมัติในแพลตฟอร์มการผสานรวมอย่างต่อเนื่อง/การจัดส่งต่อเนื่อง (CI/CD) ต่างๆ รวมถึง CircleCI 

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 เซ็นชื่อ)

  1. สร้างโฟลเดอร์ .circleci

ในพื้นที่ทำงานการเซ็นโค้ดของคุณ ให้สร้าง .circleci โฟลเดอร์. ภายใต้มันสร้าง ไฟล์ config.yml.

  1. ตั้งค่าเวอร์ชัน CI
รุ่น: 2.1
 
  1.  เรียกใช้งานผ่านเวิร์กโฟลว์ เวิร์กโฟลว์จัดชุดงานที่จะรัน งานสำหรับไปป์ไลน์นี้มีการกำหนดค่าด้านล่าง

โปรดดูที่: https://circleci.com/docs/2.0/configuration-reference/#workflows

เวิร์กโฟลว์:
 
  1. เขียนชื่อเวิร์กโฟลว์
  ดอทเน็ต:
 
  1. ภายในเวิร์กโฟลว์ คุณกำหนดงานที่คุณต้องการเรียกใช้
 งาน: - build - sign: ต้องการ: - build
 

กำหนดขั้นตอนการสร้าง

  1. กำหนดงานที่จะเรียกใช้ในภายหลังในเวิร์กโฟลว์

 (ดู: https://circleci.com/docs/2.0/configuration-reference/#jobs)

งาน: สร้าง:

 

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

 

  1.  กำหนดตัวดำเนินการ Docker: (https://circleci.com/docs/2.0/executor-types/)

    # คุณสามารถระบุรูปภาพจาก Dockerhub หรือใช้ Convenience Images ของเราได้จาก Developer Hub ของ CircleCI

 นักเทียบท่า: - ภาพ: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. วางไดเร็กทอรีการทำงานสำหรับงาน
  Working_directory: /home/circleci/project

 

  1. เพิ่มขั้นตอนในการทำงาน

    ดู: https://circleci.com/docs/2.0/configuration-reference/#steps

  ขั้นตอน

 

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

 

  1. สร้าง Artifact Directory เพื่อจัดเก็บไฟล์ Artifact ที่ลงชื่อและไม่ได้ลงนาม
    - run: ชื่อ: Create Artifacts Directory คำสั่ง: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/แพ็คเกจ

 

  1.  สร้างโปรเจ็กต์ dotnet หรือโซลูชันและการพึ่งพาทั้งหมด
      - run: ชื่อ: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. คัดลอกอาร์ติแฟกต์ไปยังไดเร็กทอรีอาร์ติแฟกต์
  • ในเวิร์กโฟลว์ตัวอย่างการเซ็นชื่อที่เป็นลายลักษณ์อักษรนี้ มีการสร้างโครงการหลายประเภท นี่คือสาเหตุที่ไฟล์ประเภทโปรเจ็กต์ต่างๆ ถูกเก็บไว้โดยการสร้างโฟลเดอร์ย่อย โฟลเดอร์ย่อยชื่อ 'dotnet' ถูกสร้างขึ้นสำหรับโปรเจ็กต์ Dotnet ในภาพหน้าจอสาธิตด้านบน ไม่จำเป็นต้องสร้างโฟลเดอร์ย่อยชื่อ 'dotnet' ดังนั้นจึงไม่รวมอยู่ในสคริปต์
  - run: ชื่อ: Copy Artifacts คำสั่ง: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. คงอาร์ติแฟกต์ไว้ในไดเร็กทอรีอาร์ติแฟกต์สำหรับการลงนาม
  -persist_to_workspace: รูท: . เส้นทาง: - แพ็คเกจ/*
 

กำหนดขั้นตอนการลงนาม

  1. กำหนดงานลงนาม
 ลงชื่อ:

 

  1. สร้างตัวแปรสภาพแวดล้อม
  • ในภาพหน้าจอด้านบน คำสั่ง sign ถูกกำหนดโดยตรงในสคริปต์สัญญาณและไม่ได้อยู่ภายใต้ตัวแปรสภาพแวดล้อม บีวิธีอื่นสามารถลงนามอย่างถูกต้องด้วย CircleCI
  • ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของเวิร์กโฟลว์ตัวอย่าง ตัวแปรบางตัวไม่ได้รวมอยู่ด้วย การลงนามยังคงดำเนินต่อไปได้แม้จะละเว้นเหล่านี้  
    สภาพแวดล้อม: ENVIRONMENT_NAME: PROD COMMAND: ลงชื่อ พื้นที่ทำงาน: /home/circleci/project

 

  1.     วางไดเร็กทอรีการทำงานสำหรับงานบน Circle-CI
 Working_directory: /home/circleci/project

 

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

 

  1. กำหนดตัวดำเนินการนักเทียบท่า:

 สำหรับการอ้างอิงเพิ่มเติม โปรดดูที่: https://circleci.com/docs/2.0/executor-types/

       คุณสามารถระบุรูปภาพจาก Dockerhub หรือใช้ Convenience Images ของเราได้จาก Developer Hub ของ CircleCI

       อย่าลืมอัปเดตแท็กอิมเมจ Docker ด้านล่างเป็นเวอร์ชัน openjdk ของแอปพลิเคชันของคุณ

       รายการรูปภาพ CircleCI Docker Convenience ที่มีจำหน่ายอยู่ที่นี่: https://circleci.com/developer/images/image/cimg/openjdk

   นักเทียบท่า: - ภาพ: cimg/openjdk:17.0.3

 

  1. เพิ่มขั้นตอนในการทำงาน

      สำหรับการอ้างอิงเพิ่มเติม โปรดดูที่: https://circleci.com/docs/2.0/configuration-reference/#steps

    ขั้นตอน

 

  1. สร้าง Artifact Directory เพื่อจัดเก็บไฟล์ Artifact ที่ลงชื่อและไม่ได้ลงนาม
  - run: ชื่อ: Create Artifacts Directory คำสั่ง: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/แพ็คเกจ

 

  1. แนบไปกับเวิร์กสเปซเพื่อเข้าถึงไฟล์อาร์ติแฟกต์
   - attach_workspace: ที่: /home/circleci/project

 

  1. เปิดใช้งาน Docker สำหรับ CodeSigner บน Circle-CI
 - setup_remote_docker: ชื่อ: Setup Remote Docker เวอร์ชั่น: 19.03.13 docker_layer_caching: true

 

  1. ดึง Codesigner Docker Image จาก Github Registry
        - รัน: ชื่อ: คำสั่ง Docker Pull Image: | นักเทียบท่าดึง ghcr.io/sslcom/codesigner: นักเทียบท่าล่าสุดดึงอัลไพน์: 3.4

 

  1. เขียนขั้นตอนที่จะลงนามสิ่งประดิษฐ์ด้วย CodeSignTool
 - รัน: ชื่อ: เซ็นคำสั่งไฟล์สิ่งประดิษฐ์: | นักเทียบท่า create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< Parameters.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --network host --volumes-from codesign-in --volumes-from codesign- ออก -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/packages/<< Parameters.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< Parameter.artifact-name >> ${ พื้นที่ทำงาน}/artifacts/<< Parameters.artifact-name >>

 

  1. เขียนขั้นตอนสำหรับอาร์ติแฟกต์ของคุณที่จะอัปโหลดจากเวิร์กโฟลว์ของคุณ ช่วยให้คุณสามารถแบ่งปันข้อมูลระหว่างงานและจัดเก็บข้อมูลเมื่อเวิร์กโฟลว์เสร็จสมบูรณ์
    - store_artifacts: ชื่อ: อัปโหลดไฟล์ที่ลงนาม เส้นทาง: /home/circleci/project/artifacts/<< Parameters.artifact-name >> ปลายทาง: << Parameters.artifact-name >>
 

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

คัดลอกส่วนประกอบคำสั่งพุชจากตำแหน่งโครงการของคุณในบัญชี GitHub

รวมส่วนประกอบคำสั่งพุชทั้งหมดในโปรแกรมแก้ไขของคุณ

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

ORDER NOW

ตั้งค่าโครงการบน CircleCI โดยใช้ที่เก็บที่รวมเข้ากับ GitHub

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

ขณะที่โปรเจ็กต์กำลังทำงานอยู่ ให้คลิกปุ่มการตั้งค่าโปรเจ็กต์ตามด้วยตัวแปรสภาพแวดล้อมเพื่อกำหนดตัวแปร

วางค่าสำหรับตัวแปรแต่ละตัว

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

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

คลิก Persisting to workspace

รอสักครู่เพื่อให้อัปโหลดไฟล์เก็บถาวรเวิร์กสเปซสำเร็จ

คลิกที่ปุ่มเข้าสู่ระบบ

รอให้ Remote Docker ถูกตั้งค่า

อาจใช้เวลานานกว่าหนึ่งนาที ขึ้นอยู่กับขนาดของไฟล์

รอให้สิ่งประดิษฐ์ที่จะลงนาม

คลิก ศิลปวัตถุ แถบ

ถ้าคุณคลิก ศิลปวัตถุคุณจะสามารถเห็นไฟล์ที่คุณเซ็นรหัสสำเร็จ คุณจะได้รับแจ้งจาก CircleCI เกี่ยวกับการลงนามรหัสสำเร็จ

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

ตัวอย่างไปป์ไลน์ CircleCI

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

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

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

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

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

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

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

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

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

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