我正在尝试通过powershell安装由mitmproxy.org提供的证书,而Windows无法将证书保存在正确的位置。

我尝试运行的命令:
Get-ChildItem -Path c:\mitmproxy-ca-cert.p12 | Import-PfxCertificate -CertStoreLocation cert:\LocalMachine\Root而不是将证书插入到受信任的根证书颁发机构中,而是将其放入中间证书颁发机构中。
Get-ChildItem -Path c:\mitmproxy-ca-cert.p12 | Import-PfxCertificate -CertStoreLocation cert:\CurrentUser\Root与第一个命令相同。

即使将工作位置设置为PS Cert:\localmachine\Root>也无法导入到Root位置。 Get-ChildItem -Path c:\mitmproxy-ca-cert.p12 | Import-PfxCertificate -CertStoreLocation .
没有错误,所有命令均已执行。我以管理员权限运行它们。

手动左击mitmproxy-ca-cert.p12确实会启动一个导入GUI,该GUI已成功将其导入到Root位置。为什么Powershell不起作用?

遵循mitmproxy.org自己的命令行安装指南没有用,因为它根本不起作用:

如何在Windows上安装(自动)

certutil.exe -importpfx根mitmproxy-ca-cert.p12

C:\>certutil -importpfx Root mitmproxy-ca-cert.p12
Enter PFX password:
CertUtil: -importPFX command FAILED: 0x80092007 (-2146885625 CRYPT_E_SELF_SIGNED)
CertUtil: The specified certificate is self signed.

任何人都可以弄清楚这里发生了什么吗?谢谢。

最佳答案

我为您制作了脚本,请告诉我您是否不理解。

$in_cert = "C:\Users\Marian\Desktop\Pfx Certificate.pfx";
$password = Read-Host -AsSecureString;

# Read the pfx certificate data:
$pfx = (Get-PfxData -FilePath $in_cert -Password $password -ErrorAction Stop);

# Get the root and publisher certificate:
$root = $pfx.OtherCertificates[0];
$publisher = $pfx.EndEntityCertificates[0];

# Add the root:
$rootStore = Get-Item "Cert:\CurrentUser\Root";
$rootStore.Open('ReadWrite');
$rootStore.add($root);
$rootStore.close();

# Add the publisher:
$rootStore = Get-Item "Cert:\CurrentUser\TrustedPublisher";
$rootStore.Open('ReadWrite');
$rootStore.add($publisher);
$rootStore.close();

Pause;


我也张贴在我的文章:My Post

关于powershell - Import-PfxCertificate未将证书保存在指定的系统存储位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57693657/

10-08 20:32