如何导入pfx证书并为所有用户设置私钥权限

时间:2016-06-08 12:08:15

标签: windows ssl certificate pfx certutil

我有自签名的pfx证书,机器有2个用户(A和B)。我需要使用一些命令行工具安装证书,它应该适用于所有用户。

如果用户A在LocalMachine \ My或LocalMachine \ Root中手动安装证书,则仅适用于用户A,因为用户B没有私钥权限。

我试过

winhttpcertcfg.exe -i cert.pfx -p pass -a Everyone -c LOCAL_MACHINE\Root

但它没有帮助,证书仅适用于运行winhttpcertcfg的用户。

我试过

winhttpcertcfg.exe -i cert.pfx -p pass -a Everyone -c LOCAL_MACHINE\My

但是它将证书安装在Root而不是My,而不管是-c参数。

我试过

certutil -f -p pass -importpfx "cert.pfx"

但它没有帮助,证书仅适用于运行certutil的用户。

如果我的商店可以手动修复问题:

  • 右键单击Local Machine Cert Manager中的证书 - >所有任务 - >管理私钥
  • 添加用户A和B并设置必要的权限。

但是我需要一些自动方式来安装我的应用程序。

2 个答案:

答案 0 :(得分:0)

要导入证书,您可以使用此powershell命令

Import-PfxCertificate -FilePath $certFilename cert:$certStoreLocation -Password $mypwd

并使用它来管理权限

How to Grant permission to user on Certificate private key using powershell?

答案 1 :(得分:0)

Import-PfxCertificate在尝试授予私钥权限时一直给我提问。使用

获取返回的证书和证书对象
$this->getDoctrine()->getRepository(Etfresearch::class)->findAll();

私钥属性都为null。

我必须使用x509证书存储区和x509certifcate2对象来导入证书和私钥。然后我就可以在powershell中更改私钥权限