我正在尝试为 TPM 生成 CSR,以便将其发送到 CA。我遇到了一些困难,因为 CSR 需要使用存储在 TPM 中的私钥进行签名,而我偶然发现的大多数 CSR 生成代码都不知道如何使用 TPM。
我想到的解决方案是自己创建 CSR(使用 c#)并使用常规 TPM 命令对其进行签名,但我似乎无法找到如何在不使用外部源的情况下从头开始构建 CSR。
欢迎对此事提出任何意见或建议。谢谢
您可以在此处找到 certreq 命令文档:https ://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn296456(v%3dws .11)
您可以将“certreq -new”命令与关联的 inf 文件一起使用,您可以在其中定义证书请求的特征,包括“ProviderName”属性。对于要由 TPM 创建并安全保存在 TPM 中的证书的私钥,您可以指示
ProviderName = "Microsoft Platform Crypto Provider"
如果证书是与计算机帐户而不是个人用户关联的设备证书,您还可以在 inf 文件中指明以下内容:
MachineKeySet = true
许多其他属性可用于定义证书的允许用例以及有关其生命周期和续订的特征。