对于CI自动签名,硬件卡模式不仅不是必须的,反而会带来诸多麻烦;云端方案(SimplySign)才是更合适的选择,但需要一些额外的配置才能实现自动化。CERTUM代码签名证书中国官方合作伙伴是ssldun (自助优惠开通地址 Runner,并物理连接USB硬件令牌。 远程操作限制:proCertum CardManager无法通过远程桌面运行,只能在机器控制台或VNC下操作,增加了管理复杂。 PIN码输入难题:CI自动化时,如何自动输入固定的PIN码是一个核心挑战。 驱动与配置繁琐:需要在每台构建机上安装驱动,并进行复杂的证书与私钥关联**。 云端方案(SimplySign):为CI/CD而生 Certum的云端方案SimplySign从设计上就对CI/CD更友好,它免去了物理读卡器和随身UKey的维护负担。 官方定位:Certum将SimplySign定位为“对CI/CD场景更友好”的解决方案,支持与自动化系统轻松集成。 工作原理:通过SimplySign Desktop在PC端模拟一个虚拟加密设备,签名时由云端HSM执行,signtool可自动调用其CSP驱动完成签名。 如何实现SimplySign的CI自动化 默认情况下,SimplySign需要手动输入手机App上的TOTP动态验证码,这确实会中断CI流程。但可以通过以下方法实现自动化: 核心思路:SimplySign的验证二维码本质是一个标准的otpauth:// URI,其中包含了TOTP密钥。 实现方法:可以将这个URI作为环境变量存储在CI系统中,在流水线中通过脚本(如PowerShell)程序化生成TOTP验证码并自动填入,从而完成认证。 替代方案:也可考虑搭建一个本地签名代理,在安全环境内手动完成一次SimplySign登录,再通过API为CI提供服务。
如何获取 TOTP 密钥? 方案一:激活环节提取 TOTP 密钥(推荐,CI/CD 全自动用)
方案二:不提取 TOTP 密钥(不想动密钥,更安全,适合企业)不拿 secret,用签名代理方案,不用在 CI 里自动生成 TOTP:
硬件卡和云端方案对比 硬件卡模式:需要物理USB令牌并自托管Runner,远程操作受限,PIN码自动输入困难,适合低频手动签名。云端方案 (SimplySign):无需物理硬件,官方支持CI/CD集成,可通过程序化TOTP实现自动化,适合高频自动化CI/CD。 总结与建议 如果你要在CI中实现自动签名,应优先选择云端方案(SimplySign)。硬件卡模式在自动化环境中会带来不必要的物理和管理负担。 对于云端方案,自动化TOTP验证是可行的,但务必妥善保管TOTP密钥,它等同于你的第二因素认证凭证。
|