使用 VB.NET 安装 x509 证书
x509 Certificate installation using VB.NET
我在通过 vb.net 在系统中安装 x509 证书时遇到问题。
安装本身是成功的,但是当我通过代码安装它时,我确实在证书管理 window 中得到一个条目,如下所示:
然而,当我使用证书管理中的导入功能手动安装它时 window 我确实在该证书的列表中得到了两个条目:
我面临的问题是,当我使用此证书执行某些任务(将一些信息传递给第三方服务)时,它仅在手动导入时有效(证书列表中有两个条目) .看起来在通过代码安装证书时,它没有完全安装。我对用于安装证书的代码进行了大量研究,它看起来相当简单:
With ofd
.Title = "Select Certificate"
.FileName = ""
.CheckFileExists = True
If .ShowDialog <> Windows.Forms.DialogResult.Cancel Then
Dim cert As New X509Certificate2(.FileName, "xxxxxxx", X509KeyStorageFlags.UserKeySet)
Dim certStore As New X509Store(StoreName.My, StoreLocation.CurrentUser)
certStore.Open(OpenFlags.ReadWrite)
certStore.Add(cert)
certStore.Close()
End If
End With
我是不是漏掉了什么?
像这样使用 X509Certificate2Collection class:
Dim collection = New X509Certificate2Collection()
collection.Import(.FileName, "xxxxxxx", X509KeyStorageFlags.UserKeySet)
Dim store = New X509Store(StoreName.My, StoreLocation.CurrentUser)
store.Open(OpenFlags.ReadWrite)
Try
For Each certificate As X509Certificate2 In collection
store.Add(certificate)
Next
Finally
store.Close()
End Try
这允许您从文件中导入所有证书。
请注意,CA 证书的正确位置是受信任的根证书颁发机构文件夹。如果您信任颁发者,则只应在那里导入证书。
我在通过 vb.net 在系统中安装 x509 证书时遇到问题。
安装本身是成功的,但是当我通过代码安装它时,我确实在证书管理 window 中得到一个条目,如下所示:
然而,当我使用证书管理中的导入功能手动安装它时 window 我确实在该证书的列表中得到了两个条目:
我面临的问题是,当我使用此证书执行某些任务(将一些信息传递给第三方服务)时,它仅在手动导入时有效(证书列表中有两个条目) .看起来在通过代码安装证书时,它没有完全安装。我对用于安装证书的代码进行了大量研究,它看起来相当简单:
With ofd
.Title = "Select Certificate"
.FileName = ""
.CheckFileExists = True
If .ShowDialog <> Windows.Forms.DialogResult.Cancel Then
Dim cert As New X509Certificate2(.FileName, "xxxxxxx", X509KeyStorageFlags.UserKeySet)
Dim certStore As New X509Store(StoreName.My, StoreLocation.CurrentUser)
certStore.Open(OpenFlags.ReadWrite)
certStore.Add(cert)
certStore.Close()
End If
End With
我是不是漏掉了什么?
像这样使用 X509Certificate2Collection class:
Dim collection = New X509Certificate2Collection()
collection.Import(.FileName, "xxxxxxx", X509KeyStorageFlags.UserKeySet)
Dim store = New X509Store(StoreName.My, StoreLocation.CurrentUser)
store.Open(OpenFlags.ReadWrite)
Try
For Each certificate As X509Certificate2 In collection
store.Add(certificate)
Next
Finally
store.Close()
End Try
这允许您从文件中导入所有证书。
请注意,CA 证书的正确位置是受信任的根证书颁发机构文件夹。如果您信任颁发者,则只应在那里导入证书。