我知道,有很多关于此的帖子,但我仍然无法找到解决方案来实现这一点 . 我在我的机器上生成了一个带有 openssl 的PFX文件,如下所示:

openssl x509 -req -days 365 -in "myReqest.csr" -signkey "myPrivateKey.pem" -out "myCertificate.crt"

openssl pkcs12 -export -out "myCertificate.pfx" -inkey "myPrivateKey.pem" -in "myCertificate.crt" -certfile "myCertificate.crt"

在我的C#应用程序中,我像这样访问私钥:

var cert = new X509Certificate2("myCertificate.pfx", "myPassword");

cert.HasPrivateKey; // This is always true!

cert.PrivateKey; // Works on my machine (only)

这完全正常(在我的机器上),但是当我在另一台机器上运行相同的代码时,它会抛出: "Key set not found" ,即使 HasPrivateKey 返回 true !私钥不应该包含在* .pfx文件中吗?你能告诉我吗:

创建时,openssl是否以某种方式自动在我的机器上安装了证书/私钥?

如何从* .PFX文件中读取私钥(或者从* .PEM文件中读取)?

StackTrace异常:

at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContaier)

at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContaier, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)

at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()

at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)

at System.Security.Cryptography.RSACryptoServiceProvider..ctor(CspParameters parameter)

at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()

Update:

我发现,以下确实有效:

// on my machine

// read certificate from file (exportable!)

X509Certificate2 cert = new X509Certificate2("filename.pfx", "password", X509KeyStorageFlags.Exportable)

// sign data etc.

((RSACryptoServiceProvider)cert.PrivateKey).SignData(...

// export private key to XML-file

File.WriteAllText("filename.xml", cert.PrivateKey.ToXmlString(true));

// on the other machine

// create new RSA object

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

// import private key from xml

rsa.FromXmlString(File.ReadAllText("filename.xml"));

// verify data etc.

rsa.VerifyData(...

但是,对我来说,这只是一种解决方法,我想以更传统/标准的方式做到这一点!

java获取pfx证书私钥_从PFX文件中读取私钥相关推荐

  1. java object取数据_java使用ObjectInputStream从文件中读取对象

    import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...

  2. python获取剪切板内容_如何从python中读取(windows)剪贴板中的文本?

    如何从python中读取(windows)剪贴板中的文本? 如何从python中读取(windows)剪贴板中的文本? Foo42 asked 2019-06-22T21:38:33Z 10个解决方案 ...

  3. java 获取cer证书指纹_获取SSL证书的指纹

    每一张SSL证书都有指纹(fingerprint)信息,若要获取,可以通过openssl或者certutil工具,分别在非Windows和Windows平台下使用 基本语法:openssl x509  ...

  4. java 获取端口号错误_尝试访问SPYDER中的pyspark时,获取错误“异常:Java网关进程在向驱动程序发送其端口号之前已退出”...

    我想通过Spyder运行Pypark 这是完整的错误:Traceback (most recent call last): File "", line 1, in sc = Spa ...

  5. java 获取excel最后一行_查找Excel电子表格中的最后一行

    确切知道的唯一方法是测试行 . 这是我用于同一问题的解决方案: int lastRowIndex = -1; if( sheet.getPhysicalNumberOfRows() > 0 ) ...

  6. java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数

    web.xml里面可以定义两种参数:1.application范围内的参数,存放在servletcontext中,在web.xml中配置如下: context/param avalible durin ...

  7. c#获取ssl证书有效性_如何在c#中获取远程服务器的SSL证书信息

    我尝试使用以下它工作正常: string strDNSEntry是您需要SSL的DNS public X509Certificate2 DownloadSslCertificate(string st ...

  8. Java去除PDF换行符_删除FASTA文件中的换行符

    我有一个fasta文件,用换行符分解序列 . 我想删除换行符 . 这是我的文件的一个例子: >accession1 ATGGCCCATG GGATCCTAGC >accession2 GA ...

  9. java获取数据库数据保存到本地txt文件中

    首先是Services @Service public class logServiceimpl implements logService {@Autowired@Qualifier("p ...

  10. c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组

    已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...

最新文章

  1. 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数
  2. ftp服务器不能双向传输文件,实现文件双向传输搭建FTP服务器
  3. 作文 —— 诙谐、幽默、调侃、批判
  4. Android解析WindowManagerService(三)Window的删除过程
  5. python 包管理和virturlenv
  6. 你遇到的面试官是「伯乐」吗?
  7. 天下第一 txdy (LCT+双指针+线段树)
  8. c语言switch同时比较多个变量,C语言学习if和switch分支选择结构
  9. Linux awk命令使用方法
  10. Python_目录的简单操作(新建/查看/删除)
  11. 服务器内存条故障显示器,客户的电脑原故障是不开机,现在又变成蓝屏:变着法加钱就搞鬼...
  12. Warning: Binary output can mess up your terminal. Use “--output -“ to tell
  13. java继承小程序_Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)...
  14. Centos7下编译安装Nginx、Mysql、PHP(文章底部包含一键安装脚本)
  15. lego ev3 c语言编程,乐高 EV3 高级编程 – 第一课:安装
  16. Axure RP9使用指南
  17. 共享打印机时,出现无法访问,你可能没有权限使用网络资源“
  18. 证券行业智慧化转型思考
  19. 一招解决python pip install 安装库失败
  20. 【OpenCV学习】第6课:图像模糊(中值滤波,高斯双边滤波)

热门文章

  1. verilog latch
  2. 《京东话费充值系统架构演进实践》--阅读
  3. 奋斗的小孩系列 FPGA学习altera系列: 第一篇 软件的安装与破解
  4. 连接服务器没有发挥作用,iPhone“连到系统上的设备没有发挥作用”原因分析及解决方法...
  5. 营业执照注册号是不是统一社会信用代码?
  6. 如何优雅地删除Redis大键
  7. JAVA-day09-多线程
  8. 支付宝当面付_小小的支付完成页上,微信和支付宝“打起来了”
  9. Altium Designer19 多层板设计教程
  10. TCR+fc型svc无功补偿仿真模型有详细资料