You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google KMS存储的密钥生成CSR遇OpenSSL pkcs11引擎错误求助

解决Google KMS密钥生成CSR时OpenSSL找不到PKCS11引擎的问题

错误根源

Google Cloud Shell默认环境未预装OpenSSL的PKCS11引擎,也未配置Google KMS专用的PKCS11代理,导致无法通过OpenSSL调用KMS中的密钥。

解决步骤

1. 安装PKCS11相关依赖

在Cloud Shell中执行以下命令,安装OpenSSL PKCS11引擎及基础支持包:

sudo apt-get update && sudo apt-get install -y opensc libengine-pkcs11-openssl

2. 下载并配置Google KMS PKCS11代理

Google提供官方PKCS11代理用于连接KMS,执行以下命令完成安装:

wget https://github.com/GoogleCloudPlatform/kms-pkcs11/releases/latest/download/cloudkms-pkcs11-linux-amd64
chmod +x cloudkms-pkcs11-linux-amd64
sudo mv cloudkms-pkcs11-linux-amd64 /usr/local/bin/cloudkms-pkcs11

接下来配置OpenSSL识别PKCS11引擎:

  • 编辑/etc/ssl/openssl.cnf文件,添加以下配置(根据OpenSSL版本调整路径):
[engine_section]
pkcs11 = pkcs11_section

[pkcs11_section]
engine_id = pkcs11
# OpenSSL 3.x路径
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/pkcs11.so
# OpenSSL 1.1.x路径(若3.x路径不存在则替换)
# dynamic_path = /usr/lib/x86_64-linux-gnu/engines/pkcs11.so
MODULE_PATH = /usr/local/bin/cloudkms-pkcs11
init = 0

3. 配置环境变量并验证引擎

设置KMS的项目ID和密钥所在区域(替换为你的实际信息):

export CLOUDKMS_PKCS11_PROJECT="你的项目ID"
export CLOUDKMS_PKCS11_LOCATION="你的密钥区域"

验证PKCS11引擎是否加载成功:

openssl engine -t pkcs11

输出显示pkcs11 engine available即表示配置生效。

4. 生成CSR的正确命令

替换占位符后执行以下命令生成CSR,输出文件为csr.pem:

openssl req -new -subj '/emailAddress={yourEmail}/CN={companyName}/O={companyName}/' -sha256 -engine pkcs11 -keyform engine -key "pkcs11:object={keyName};type=private" -out csr.pem

注意事项

Cloud Shell为临时环境,每次重启后需重新执行上述安装配置步骤;若需长期使用,建议创建自定义虚拟机镜像或使用持久化实例。

内容的提问来源于stack exchange,提问作者Muhammad Faisal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:30:12