【发布时间】:2017-04-27 14:33:45
【问题描述】:
我有一个程序可以在商店中找到证书,并测试 rsa 私钥是否存在。
var store = (StoreName.CertificateAuthority, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, "a02274af4e74defc0bf2ffb45e2d90bdbb1282f9", false);
if (certs.Count > 0)
{
Console.WriteLine("Cert found");
X509Certificate2 cert = certs[0];
var rsa = cert.GetRSAPrivateKey();
if (rsa == null)
Console.WriteLine("rsa failed");
else
Console.WriteLine("rsa ok");
}
在 Windows 上,将 pfx 中的证书安装到存储中后一切正常。
在 linux 上,找到了证书,但没有找到私钥。
我使用这个 SO 答案将我的 pfx 转换为 crt 文件:https://stackoverflow.com/a/16724275/1083225
我将crt文件放入/usr/local/share/ca-certificates,并执行update-ca-certificates
如果我查看 crt 文件,则存在 rsa。
这是一个 .NETCoreApp 1.1
【问题讨论】:
标签: linux certificate .net-core