首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取私钥证书的base64编码值?

如何获取私钥证书的base64编码值?
EN

Stack Overflow用户
提问于 2012-01-15 01:03:23
回答 2查看 19.3K关注 0票数 7

previous question之后,我有一些需要用私钥获取X509证书的代码。正如答案中所指出的,在生产中,这将使用X509Store来实现。

对此进行单元测试的最佳方式是什么?我希望使用与生产中不同的证书进行开发和测试,因此我可以创建一个CertificateRepository接口来提供不同的实现。

对于测试/开发实现,最好只使用证书的base64编码字符串,并以这种方式创建一个具有虚拟密码和专用测试/开发证书的证书实例。但是,到目前为止,我还不知道如何将私钥证书编码为base64字符串。每次我尝试将证书从MMC导出为base-64格式时,它只对公钥进行编码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-16 00:12:37

我不知道如何使用mmc来做到这一点。然而,我知道如何在代码中做到这一点:

代码语言:javascript
复制
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Find(X509FindType.FindByThumbprint, 
    "BLABLABLA", false)[0]; // doesn't matter how you get the cert
var exported = certificate.Export(X509ContentType.Pfx, "the password");
var base64 = Convert.ToBase64String(exported);
store.Close();

只要您从x509存储中获得的证书具有私钥,它就会在导出的字节数组中结束,然后您可以将其转换为base64字符串。

票数 13
EN

Stack Overflow用户

发布于 2012-01-15 14:03:35

将证书添加到存储区时,请确保将私钥标记为可导出。

如果使用makecert创建证书,请添加-pe选项以使私钥可导出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8863785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档