我正在尝试使用 PowerShell 导入由 OpenSSL 从 cer 和密钥文件创建的 PFX(密钥由 OpenSSL 与 CSR 一起生成,并提交给内部 AD CA 以生成 cer)
在 OpenSSL 中查看证书信息时,我可以看到 PFX 仅包含一个证书和一个私钥,这正是我所期望的
如果我运行以下命令,证书将被导入中间证书颁发机构,而不是我指定的机器个人存储:
Import-PfxCertificate -FilePath $SharedPFXPath -Password (ConvertTo-SecureString -String $PFXPassword -AsPlainText -Force) -CertStoreLocation Cert:\LocalMachine\My -Exportable
Import-PfxCertificate
该命令可能忽略我的证书存储位置的原因可能是什么?
编辑:只是为了获得一些额外的信息,我想详细说明用于生成源证书和密钥文件等的命令:
首先创建密钥和 CSR
openssl.exe genrsa -out $KeyFilePath 2048
openssl.exe req -new -key $KeyFilePath -out $CSROutputPath -config $ConfigFilePath
CSR 配置文件包含以下内容(实际 DN 值已删除):
[req]
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[req_distinguished_name]
C = COUNTRY CODE
ST = COUNTY/STATE
L = TOWN
O = ORG
OU = OU
CN = COMMON NAME
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = SAN
然后我将 CSR 提交给 AD CA,并保存 BASE64 编码的证书。我使用它和密钥文件来创建 PFX
openssl.exe pkcs12 -export -in $CertPath -inkey $KeyFilePath -out $PFXPath -passout pass:$PFXPassword -nomac
我必须将其添加-nomac
到我的 PFX 命令中,否则每次我尝试手动将 PFX 导入证书存储时,都会收到密码错误。不确定这是否会加剧我的问题,或者我的一些早期命令是否可能导致我出现一些问题?
答案1
此问题与上述类似问题相关这里
我在 Windows 上使用 OpenSSL 3.0 来生成我的证书和 PFX 等,虽然我遇到了与另一个问题相同的“密码错误”问题,该问题通过添加解决了-nomac
,但我没有添加其他选项。
添加到我的 PFX 导出命令后-certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES
,我不再遇到任何问题,并且我的证书已导入到我指定的商店