【问题标题】:Generating private key in a file using certreq in powershell在 powershell 中使用 certreq 在文件中生成私钥
【发布时间】: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


【解决方案1】:

我找到了解决方案。也许它会帮助别人。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2015-12-28
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2019-06-05
    • 2019-08-22
    相关资源
    最近更新 更多