Gitlab CI 使用云签平台
介绍 Gitlab-CI 中,如何配置云签平台进行签名打包
简介
云签平台,基于符合 FIPS 140-2 Level3 国际安全标准的服务器密码机进行用户密钥管理的方式,使用户免去传统 UKEY 易丢失、频繁输入口令、传输成本高等顾虑,可以随时随地想签就签。
简单来说,就是密钥存储在云端,由云端提供各类签名途径。以下介绍如何在 gitlab ci 中配置自动化签名流水线。
准备条件
流水线配置示例 1
// 使用云签平台 ssigncode 命令程序
stages:
- build
- signing
build:win_client:
image: golang:1.20.1
only:
- tags
tags:
- windows
stage: build
before_script:
- mkdir -Path ${CI_PROJECT_DIR}\release
script:
- go build -v -ldflags "-w -s" -o ${CI_PROJECT_DIR}\release\test_.exe
artifacts:
paths:
- ${CI_PROJECT_DIR}\release\test.exe
expire_in: 1 week
build:sign:
only:
- tags
tags:
- windows
stage:signing
script:
- ssigncode vsign -s https://vsign.trustasia.com —cert_hash ${SIGN_CERT_HASH} —cert_from csign -u ${OPERATOR_HASH} -i ${CI_PROJECT_DIR}\release\test_.exe -o ${CI_PROJECT_DIR}\release\test.exe —ts {TIMESTAMP_VENDOR}
流水线配置示例 2
前置条件:在签名客户端中开启 KSP 功能
build:win_client:
.....
build:sign:
only:
- tags
tags:
- windows
stage:signing
script:
- signtool.exe sign /fd sha256 /sha1 ${SIGN_CERT_HASH} ${CI_PROJECT_DIR}\release\test_.exe