自动安装p12证书文件

时间:2019-10-17 22:48:17

标签: c#

我的目标是自动化证书安装,而无需任何用户交互。

要求:

  • 为当前用户安装
  • 启用强大的私钥保护
  • 将此密钥标记为可导出
  • 将私钥安全级别设置为高 (使用该物品时,请输入我的密码许可)

代码:

using System.Security.Cryptography.X509Certificates;
X509Certificate2 cert = new X509Certificate2(
     "file.p12", "password", 
      X509KeyStorageFlags.UserProtected
     | X509KeyStorageFlags.UserKeySet
     | X509KeyStorageFlags.Exportable);
X509Store store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);

上面的代码将当前用户的证书安装在个人商店下,并且能够管理第一个gui: Screenshot - Certificate Import Wizard

,但是它无法设置安全级别,而是打开gui: Screenshot2

编辑:

  

实际上,可以通过UWP使用另一种方法,称为“ UserCertificateEnrollmentManager.ImportPfxDataAsync方法” Link。   “ KeyProtectionLevel枚举”为您提供了“ ConsentWithPassword”选项,但是UWP对我而言是全新的,我更喜欢使用控制台.net

1 个答案:

答案 0 :(得分:0)

使用UWP进行测试会显示一个附加的“ UWP样式”对话框,要求获得证书操作的同意,然后要求创建密码,因此它会跳过Screenshot2中显示的GUI。我不知道这是否有帮助?

UWP consent dialog

Windows security cert pass dialog

<div class="top-semi-circle"></div>
<div class="bottom-semi-circle"></div>