【发布时间】:2018-06-18 03:56:54
【问题描述】:
我有私钥的 PEM 字符串。想要将此加载到私钥部分的 x509Certifcate 中吗?
----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALyuJDi0hk6pMSYB
ZaW4e6vxrQv5fWuWZoXQT0BpWOgBKlyfwsRT1L/2vPnzhmfn/JrAjTVbO+/w53+u
dprOgzVI75ILg1ONivtBu6ivz+iAgV87MJtRPbVaee52DGvwFZ2tMUTtKNhO10IN
0+RuE8F/EZOs2DOTGiP6F7Wo4JStAgMBAAECgYAhDbzItk9lDlzO1KXS/1ujBqaT
F3TyWRnCzXhkx0/M7Q9XxKEhNbJqorX+b7wXDdwB3EOgmkgIw8I6avzaJ91yNido
Mruenc+FJJXntcIeW1E+OnHAnoY5OvLk4aQy1j7ZDnxpzVhc/y1WFDIKvszNAChV
QBrolHu4GmWcpVunPQJBAOc28JVRYd++AiKOk1HP6iJSanND5tb8sCjINMbZGSh+
3aS0KmVE0RpaDE7hxvsq4arqdie8HSyj8mfPFF46G+8CQQDQ5/X9O+z26W0RSJed
mMwZYbGPcej7hG6GT6+jcqNgPvrHucTvcAcgR6rdKA30mm94s9O6IU/rapA+sioF
lm0jAkASi/SmdZ29PdecAAXPNTdZw3SohFTa/+/9hXm+TaHX/r02vgD8mJWRYJHG
LhQxB5KMjDwoGc3ZS9lg/Fps6IpfAkB1BfueZ7tOdWRLkkacWcO7VCaLHFxOyNjB
FFJnVQiAGceRqlbPagoT4xGr4YwvwXNAQjwQwChsz70N4e/4QVPRAkEAn3bnuuUb
l5geVfamQwxCLnNbKcAQTdd5Ud69gZ5+c8WTt3ecJ/erccRXTcizEQxcMsfVivhz
qO88dh2HgL4Ijw==
-----END PRIVATE KEY-----
代码:
byte[] certificatebytes = Encoding.ASCII.GetBytes(x509CertificateString);
X509Certificate2 x509Certificate3 = new X509Certificate2(certificatebytes,"");
x509Certificate.Import(certificatebytes,"",X509KeyStorageFlags.DefaultKeySet);
代码说明:
将 PEM 字符串转换为字节,然后加载到 x509Certificate2 抛出异常: System.Security.Cryptography.CryptographicException: '找不到 请求的对象。 ?
【问题讨论】:
-
私钥就是私钥。您需要证书的公共部分来实例化
X509Certificate2对象。 -
如何从 PEM 字符串中提取公钥以加载到 x509Certificate 中?
-
你能帮我解决这个问题吗?
-
我猜,你需要完整的公共证书,而不仅仅是公钥。您无法从私钥恢复 publuc 证书。
-
我有 PEM 字符串形式的私钥
标签: x509certificate pfx