如何使用Google Cloud KMS与Sectigo代码签名证书(2025指南)
本分步指南将引导您使用Google密钥管理服务(KMS)的安全HSM进行云代码签名,配合Sectigo代码签名证书。
Google Cloud KMS用户现在可以享受管理其Sectigo代码签名证书密钥的安全性和熟悉性。
本文将指导您使用Google Cloud KMS的硬件安全模块(HSM)设置和存储安全的代码签名证书和密钥对。
如何开始:购买代码签名证书
在设置Google密钥管理服务(KMS)或开始签名代码之前,您必须先购买代码签名证书。为了打击被泄露签名密钥的滥用,所有新的代码签名证书和密钥必须在符合FIPS标准的硬件上生成和存储。
Sectigo支持以下安全设备:
- YubiKey 5 FIPS系列(USB令牌)
- Luna网络附加HSM v7.X(物理硬件)
- Google Cloud KMS(云HSM)
如果您想将Google KMS用于云签名项目,在从SectigoStore.com购买Sectigo代码签名证书时,请选择"在现有HSM上安装"作为证书交付方法。
订单完成后,您将被带到账户的"我的订单"页面。在这里,您会看到一个链接,将带您开始我们将在第5步中介绍的证书生成过程。
步骤1:在Google Cloud KMS中创建密钥环
如果您希望使用现有的Google Cloud KMS密钥环,请跳至步骤2生成密钥。否则,如果需要设置新的密钥环,可以使用Google Cloud KMS的创建密钥环指南进行操作。
注意:请务必获取您的Google Cloud KMS key_ring值,因为在步骤4中需要它。
步骤2:使用Google Cloud的HSM创建公私钥对
现在密钥环已准备就绪,是时候生成新密钥了。在Google Cloud中,进行以下选择:
- 选择HSM保护
- 接下来,在"密钥材料"字段下选择"HSM生成"
- 点击"非对称签名"作为目的和算法选择,并指定3072位RSA - PKCS #1 v 1.5填充 - SHA256摘要(推荐)
完成后,您将在密钥环中看到类似这样的密钥列表(3072位RSA密钥,PKCS #1 v 1.5填充 - SHA256摘要[推荐])。
步骤3:下载密钥的HSM证明记录
下一步是通过下载密钥证明包来证明您的密钥是使用安全设备生成的。(您很快会需要这个,所以现在就去获取它。)
- 选择上面屏幕截图中"操作"列下的三个垂直点
- 在下拉菜单中点击"验证证明"
- 选择"下载证明包"选项(这是一个.zip文件)
步骤4:生成证书签名请求(CSR)
使用您首选的CSR生成方法。在这种情况下,我们将指导您如何在Linux(Ubuntu)上使用刚刚创建的密钥在OpenSSL中生成CSR。此过程包括:
- 下载并安装OpenSSL和libengine-pkcs11-openssl包
- 提取Google PKCS #11库并配置OpenSSL使用它
- 设置YAML配置文件,供KMS_PKCS11_CONFIG环境变量指向。(注意:这是您需要之前在步骤1中收集的key_ring值的地方。)
- 通过工作负载身份联合设置身份验证方法,或在Google Cloud中创建服务账户。您可以通过在IAM-Admin > 服务账户下选择项目来完成此操作。这将需要授予Cloud KMS的管理员和加密操作员角色的特定权限,并创建一个新的JSON密钥,需要保存到用于生成CSR的服务器或计算机。
- 设置环境变量,使其指向密钥文件。
- 使用以下变量的自定义版本生成CSR:
openssl req -new -subj '/CN=您的公司名称, LLC/' -sha256 -engine pkcs11 -keyform engine -key pkcs11:object=your_key_name > code_signing_request.csr。将your_key_name值替换为密钥文件名(例如"codesigningkey"而不是资源URL,因为有100个字符的限制,这经常导致错误)
仔细检查您的摘要算法是否与在步骤2中生成密钥时选择的算法匹配。
步骤5:提交CSR和密钥证明信息
要完成证书注册(CSR生成)过程,您需要将CSR和密钥证明文件提交给Sectigo。提醒:这是您在步骤3中下载的.zip文件。
要提交CSR并完成证书注册过程,请登录您在SectigoStore.com上的账户并访问"我的订单"。在这里,您可以选择生成证书的选项。这将带您到CertificateGeneration.com页面。在这里,您必须:
- 提供您的姓名和组织详细信息
- 输入组织联系人的信息
- 添加电子邮件地址(可选),如果您想收到验证电子邮件
- 选择您喜欢的证书收集方法(我将在下面的项目符号列表中说明此步骤的具体细节)
- 同意证书服务协议
上面第4点中指示的额外步骤如下:
- 在回答关于私钥是否使用列出的安全硬件选项生成的问题时,点击"是"
- 选择"Google Cloud KMS(云HSM)“作为您现有的HSM类型
- 复制并粘贴您在步骤4中生成的CSR详细信息
- 上传您在步骤3中下载的密钥证明文件
就是这样!现在,Sectigo将开始其代码签名证书验证过程;完成后,证书将被颁发。
使用Sectigo代码签名证书和SignTool签名代码
困难的部分已经完成 - 现在是时候享受劳动成果了。一旦您的代码签名证书准备就绪,您就可以开始使用SignTool签名软件可执行文件。
要在Windows上使用SignTool开始签名软件:
- 确保您已安装最新版本的SignTool。如果没有,您可以安装SignTool作为Windows软件开发工具包(SDK)的一部分。
- 在您的设备上安装最新的Google Cloud KMS CNG提供程序版本。
- 您首先需要将机器认证到Google Cloud。这将涉及使用命令
gcloud auth application-default login运行Google Cloud的身份验证应用程序。 - 使用以下命令以及您的自定义证书和密钥资源路径变量签名软件:
signtool sign /v /debug /fd sha256 /t http://timestamp.sectigo.com /f path/to/mycscertificate.crt /csp "Google Cloud KMS Provider" /kc projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/1 path/to/file.exe