首页 > 解决方案 > VB.net - 导入证书,与私钥绑定并安装在 USB PKI 令牌上

问题描述

所以我要做的是将现有证书(DER、CER 和/或 PEM 格式)导入到 USB PKI 令牌中,该令牌已经具有与证书匹配的私钥。

首先,我能够使用 VB.net 中的代码成功地将证书添加到 Windows 证书存储(我的/个人)。其次,我什至可以将证书匹配并绑定到密钥(为此使用 certutil -repairstore,在我的 vb.net 程序中执行)

现在的问题:上面的部分将证书添加到 PC 商店,并将其与该机器上使用的密钥匹配。但是,证书实际上并未添加到 USB PKI 令牌中。这意味着如果我将它移动到另一台 PC,我在那里只有私钥。

现在,我相信应该可以将它添加到令牌中(顺便说一句,它有自己的 CSP。)

原因是,如果我将令牌插入 PC,并通过 Windows 中的 MMC 将证书本身直接导入证书管理器,它将自动与私钥匹配并将其安装在令牌本身上。

感觉这应该可以通过编码实现,不是吗?我也通过powershell尝试过,但没有运气。certutil 能够直接在令牌上导入证书,但是,只有在您提供我没有的 PFX 文件时,才能查看私钥如何仅在令牌上可用。

目前,导入是通过以下方式完成的: Dim collection = New X509Certificate2Collection()

    collection.Import(V_EndEntity)

    Dim store = New X509Store(StoreName.My, StoreLocation.CurrentUser)

    store.Open(OpenFlags.MaxAllowed)

    Try
        For Each certificate As X509Certificate2 In collection
            store.Add(certificate)
        Next
    Finally
        store.Close()
    End Try

有什么建议么?

标签: vb.netsslsmartcardpki

解决方案


推荐阅读