0

我正在使用 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 时抛出错误。谢谢

4

1 回答 1

0

我找到了解决方案。可能会帮助别人。

似乎某些 CA 要求未记录的特定顺序的主题(超级烦人)。

我连接到的 CA 需要 $subject 以下列方式

$subject = "`"/DC=$dc2/DC=$dc/O=$o/CN=$cn2/CN=$cn'"

CA 接受在生成 CSR 时使用这样的主题。

于 2020-06-25T15:40:33.720 回答