【发布时间】:2020-10-15 12:21:22
【问题描述】:
我正在使用 powershell 脚本来创建使用 certreq 的证书签名请求 (CSR)。我需要文件中的私钥,但脚本没有生成它。我尝试查看 certreq 和其他资源的文档,但一无所获。在 INF 设置中,我设置 Exportable = TRUE。这是设置
$settingsInf = "
[Version]
Signature=`"`$Windows NT`$
[NewRequest]
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
RequestType = PKCS10
ProviderName = `"Microsoft RSA SChannel Cryptographic Provider`"
ProviderType = 12
HashAlgorithm = sha256
;Variables
Subject = `"CN={{CN}},CN={{CN2}},O={{O}},DC={{DC}},DC={{DC2}}`"
[Extensions]
{{SAN}}
我尝试的另一个解决方案是使用 openssl 获取私钥和 CSR。在这个解决方案中,我同时获得了私钥和 CSR,但是当我将 CSR 提交给 CA 时,它会引发以下错误
"message" : "Invalid Subject DN. The requested Subject DN is not compatible with the issuing CA.",
我使用openssl如下
$subject = "`"/CN=$cn/CN=$cn2/O=$o/DC=$dc/DC=$dc2'"
openssl req -new -key $privateKeyPath -rand $randPath -subj $subject -out $csrPath
证书颁发机构 DN 如下
"issuer_dn" : "CN=usa,O=SE,DC=abc,DC=com",
关于使用 certreq 获取私钥的任何建议,或者为什么 CA 在使用 openssl 时抛出错误。谢谢
【问题讨论】:
-
> 为什么 CA 会抛出错误。删除
,CN={{CN2}}或/CN=$cn2有帮助吗?也许用硬编码的,O=SE,DC=abc,DC=com替换,O={{O}},DC={{DC}},DC={{DC2}}或/O=$o/DC=$dc/DC=$dc2。值得一试。 -
嗨,我尝试了硬编码以及相同的异常结果
标签: powershell csr certreq