【问题标题】:How to create personal certificate如何创建个人证书
【发布时间】:2012-06-18 05:35:18
【问题描述】:

我正在使用此代码在本地机器上生成证书。

X509Certificate2 certificate = new X509Certificate2(cerFilePath,password);
        X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);

        store.Open(OpenFlags.ReadWrite);
        store.Add(certificate);
        store.Close();

输出显示它已创建,但它不在 certmanager 的个人选项卡中,但如果我在同一程序中使用 My 以外的商店名称(例如:Trusted Publisher),则证书在该商店名称下的证书管理器中可用。

但我需要个人使用的证书。

出了什么问题?

【问题讨论】:

  • 这是一个 Windows 应用程序,它与哪个用户一起运行?在当前用户下?所以在执行上下文中,谁是“我”,分别是。哪个商店是“StoreName.My”?
  • 我在管理员模式下运行 Visual Studio,是的,它是 VC 中的 c# 项目,我需要通过将 .pfx 文件作为输入来创建证书。
  • 这听起来像是当前提供的信息的假冒问题。您能否打印出有关当前用户(Thread.CurrentThread.CurrentPrincipal)的一些调试信息,以确保应用程序确实以您自己的用户身份执行,而不是模拟,或者打印出 Store.My 的当前内容代码,看看这是否真的是预期的存储证书。

标签: c# .net certificate


【解决方案1】:

如果您使用“LocalMachine”上下文,则必须具有“提升的权限”(如果需要以管理员身份运行应用程序)。

“LocalMachine”和“CurrentUser”都有一个名为“Personal”(我的)的商店!
您可以使用“certlm.msc”浏览“LocalMachine”商店,并使用“certmgr.msc”浏览“CurrentUser”商店。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 2020-09-27
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多