加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用私钥将X509Certificate2导出到字节数组

发布时间:2020-12-15 06:34:32 所属栏目:百科 来源:网络整理
导读:我的商店里有一个X509Certificate2证书,我想使用私钥导出到一个字节数组.证书字节数组必须使得当我稍后从字节数组导入证书时,私钥将具有私钥. 我已经尝试了很多途径,但是还没有成功地使用私钥导出证书. X509Store store = new X509Store(StoreLocation.Curre
我的商店里有一个X509Certificate2证书,我想使用私钥导出到一个字节数组.证书字节数组必须使得当我稍后从字节数组导入证书时,私钥将具有私钥.

我已经尝试了很多途径,但是还没有成功地使用私钥导出证书.

X509Store store = new X509Store(StoreLocation.CurrentUser);      

store.Open(OpenFlags.ReadOnly);

X509Certificate2 cert = store.Certificates[1];

byte[] certBytes = cert.GetRawCertData(); // Obviously does not work!

可以使用私钥将证书成功导出到字节数组吗?

帮助非常感激.

解决方法

X509Certificate2类的导出功能可以导出
一个带有私钥的证书到一个字节数组.

以下代码演示了使用私钥导出证书:

X509Store store = new X509Store(StoreLocation.CurrentUser);

store.Open(OpenFlags.ReadOnly);

X509Certificate2 cert = store.Certificates[1];

// Export the certificate including the private key.
byte[] certBytes = cert.Export(X509ContentType.Pkcs12);

要保护导出的证书,请使用以下导出功能重载:

byte[] certBytes = cert.Export(X509ContentType.Pkcs12,"SecurePassword");

开始编辑

要导入证书,请使用以下代码:

X509Certificate2 certToImport = new X509Certificate2(arr,"SecurePassword");

// certToImport.HasPrivateKey must be true here!!

X509Store store2 = new X509Store(StoreName.TrustedPublisher,StoreLocation.CurrentUser);
store2.Open(OpenFlags.MaxAllowed);

store2.Add(certToImport);
store2.Close();

完成编辑

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读