Steve Sheldon 的回答为我解决了这个问题,但是,由于我在没有 gui 的情况下编写证书权限的脚本,我需要一个可编写脚本的解决方案。我很难找到我的私钥存储在哪里。私钥不在-C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
,最后我发现它居然在C:\ProgramData\Microsoft\Crypto\Keys
。下面我描述了我是如何发现的:
我试过FindPrivateKey
但它找不到私钥,并且使用 powershell$cert.privatekey.cspkeycontainerinfo.uniquekeycontainername
是空/空的。
幸运的是,certutil -store my
列出了证书并给了我编写解决方案脚本所需的详细信息。
================ Certificate 1 ================
Serial Number: 162f1b54fe78c7c8fa9df09
Issuer: CN=*.internal.xxxxxxx.net
NotBefore: 23/08/2019 14:04
NotAfter: 23/02/2020 14:24
Subject: CN=*.xxxxxxxnet
Signature matches Public Key
Root Certificate: Subject matches Issuer
Cert Hash(sha1): xxxxa5f0e9f0ac8b7dd634xx
Key Container = {407EC7EF-8701-42BF-993F-CDEF8328DD}
Unique container name: 8787033f8ccb5836115b87acb_ca96c65a-4b42-a145-eee62128a
##* ^-- filename for private key*##
Provider = Microsoft Software Key Storage Provider
Private key is NOT plain text exportable
Encryption test passed
CertUtil: -store command completed successfully.
然后我扫描文件夹并在C:\ProgramData\Microsoft\Crypto\Keysc\ProgramData\Microsoft\Crypto\
中找到文件8787033f8ccb5836115b87acb_ca96c65a-4b42-a145-eee62128a。
授予我的服务帐户读取权限此文件为我解决了问题