我正在尝试在我的笔记本电脑中使用 TPM 2.0 芯片来管理新的 RSA 密钥对并在新的私钥之上创建一个 CSR,但是当我列出由我的 TPM 管理的证书时,我只得到了标记为公共的密钥并且没有知道,如何获取我想要用于 CSR 生成的私钥的 URL。
我使用了以下程序:
#generate rsa key:
p11tool --login --so-login --generate-rsa --bits=2048 --label=dave4 "$token"```
#list my certificates:
p11tool --list-all ""
但是当我尝试列出它们时获得的所有证书 URL 都被标记为公共:
pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4;id=%34%39%30%66%65%35%65%34%30%30%34%64%65%33%65%30;object=myfirstkey;type=public
并且 list priv keys 不返回任何对象:
p11tool --list-privkeys pkcs11:model=NPCT75x;manufacturer=Nuvoton;serial=0000000000000000;token=dave4
No matching objects found
您是否知道如何获取私钥 URL 列表或如何生成新的 rsa 密钥对以便之后创建 CSR?
谢谢。
通常这些对象是使用 CKA_PRIVATE 属性创建的,表明它们在普通列表中是隐藏的——您必须指定
--login
并提供令牌 PIN 才能看到它们。但是如果 PKCS#11 模块存储了私钥,那么公有和私有部分的 URI 几乎总是完全相同
id=
,因此您可以手动编辑 URI。私钥可能有不同的object=
标签(所以删除该参数),它当然会有type=private
.例如,这应该是一个有效的 URL:
甚至:
请注意,tpm-pkcs11还远未完成。最近出现了许多与 API 相关的错误修复(其中一些是昨天合并的)。