การใช้
- ชื่อ: ลงชื่อสิ่งประดิษฐ์ด้วย 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}}
- OAuth TOTP ความลับ (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
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 ตัวอย่างเวิร์กโฟลว์
เตรียมส่วนประกอบของเวิร์กโฟลว์
- สร้างโฟลเดอร์ Github บนตัวแก้ไขของคุณ รวมเวิร์กโฟลว์กับโฟลเดอร์และสร้างไฟล์ yml ใต้โฟลเดอร์
- ตั้งชื่อโครงการของคุณและประเภทของเวิร์กโฟลว์ที่เกี่ยวข้อง
ชื่อ: Maven สร้างและลงนาม
- ทริกเกอร์เวิร์กโฟลว์นี้ด้วยการกด
บน: กด
- สร้างตัวแปรสภาพแวดล้อม
- ตัวแปรสภาพแวดล้อมใช้เพื่อทำให้ตัวอย่างอ่านง่ายขึ้น ในภาพหน้าจอด้านบนของเวิร์กโฟลว์ตัวอย่าง PROJECT_NAME, PROJECT_VERSION และ MAVEN_VERSION ถูกละเว้นหรือไม่ก็ได้ การลงนามยังคงดำเนินต่อไปได้แม้จะละเว้นเหล่านี้
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- กำหนดงานในบรรณาธิการของคุณ
งาน: build-and-sign-jar:
- เรียกใช้งานบน Ubuntu Runner
วิ่งบน: ubuntu-ล่าสุด
- สร้างชื่อ เมื่อเวิร์กโฟลว์ทำงาน นี่คือชื่อที่บันทึก
ชื่อ: 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
- งาน 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}/สิ่งประดิษฐ์
- งานอัปโหลดเป็นขั้นตอนที่สิ่งประดิษฐ์จากเวิร์กโฟลว์ของคุณจะถูกอัปโหลด ช่วยให้คุณสามารถแบ่งปันข้อมูลระหว่างงานและจัดเก็บข้อมูลเมื่อเวิร์กโฟลว์เสร็จสมบูรณ์
- ชื่อ: อัปโหลดไฟล์ที่ลงนามใช้: actions/upload-artifact@v2 กับ: ชื่อ: ${{env.PROJECT_NAME}}.jar เส้นทาง: ./artifacts/${{env.PROJECT_NAME}}.jar
รับตัวอัปโหลดสิ่งประดิษฐ์จาก Github Marketplace
ตรวจสอบสคริปต์การเข้ารหัสของคุณ
สคริปต์การเข้ารหัสทั้งหมดสำหรับงานบิวด์ ป้าย และอัปโหลดควรมีลักษณะเหมือนภาพด้านล่าง ตรวจสอบให้แน่ใจว่าได้แก้ไขข้อผิดพลาดใดๆ เช่น ตัวสะกดผิดหรือตัวแบ่งบรรทัดที่ผิดพลาดในสคริปต์เพื่อให้กระบวนการลงนามทำงานได้อย่างราบรื่น
กำหนดตัวแปรสภาพแวดล้อมของคุณ
ไปที่ที่ตั้งโครงการของคุณในบัญชี Github คลิก สถานะ แถบ คลิก ความลับของที่เก็บใหม่ ปุ่มเพื่อวางค่าสำหรับตัวแปรสภาพแวดล้อมแต่ละตัวที่จำเป็นในการลงนามโค้ดของคุณ
สร้างที่เก็บใหม่บนบรรทัดคำสั่ง
ดำเนินการไปยังที่ตั้งโครงการของคุณบน Github และคัดลอกแต่ละองค์ประกอบของคำสั่งพุช
ดันโครงการ
รวมบรรทัดคำสั่งพุชแต่ละรายการในตัวแก้ไขโค้ดของคุณ เมื่อเสร็จสิ้น รหัสจะถูกผลักโดยอัตโนมัติบน Github
รอให้สิ่งประดิษฐ์ลงนามด้วย eSigner CodeSignTool
อัปโหลดไฟล์ที่ลงนามแล้ว
คลิกที่ไฟล์ที่ลงนามเพื่ออัปโหลด
ตัวอย่างไปป์ไลน์การดำเนินการ Github
ตรวจสอบตัวอย่างไปป์ไลน์ Github Actions ที่เราสร้างขึ้น github.com/SSLcom/codesigner-github-sample
คู่มือการบูรณาการการลงนามระยะไกล CI/CD อื่นๆ
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ CircleCI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ GitLab CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Jenkins CI
- การผสานรวมการเซ็นชื่อรหัสบนคลาวด์กับ Travis CI
- การรวมการลงนามรหัสบนคลาวด์กับ Azure DevOps
- ระบบอัตโนมัติลงนามรหัสบนคลาวด์ด้วยบริการ CI/CD
ต้องการโซลูชันที่กำหนดเองหรือไม่
ด้วยความรู้จากผู้เชี่ยวชาญและเจ้าหน้าที่สนับสนุนระดับห้าดาว เราพร้อมและยินดีที่จะทำงานร่วมกับคุณเกี่ยวกับโซลูชันแบบกำหนดเองหรือส่วนลดการลงนามจำนวนมากในระดับองค์กร กรอกแบบฟอร์มด้านล่าง แล้วเราจะติดต่อกลับไป