我遇到了私钥加载的困难。
我使用以下命令创建了证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
我创建了一个GIST来展示输出结果:https://gist.github.com/anonymous/5592135
static void Main(string[] args)
{
string location = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string certLocation = location + "\\assets\\certificate.crt";
string privateKeyLocation = location + "\\assets\\privateKey.key";
string xmlDocLocation = location + "\\assets\\sample.xml";
XmlDocument Doc = new XmlDocument();
Doc.Load(xmlDocLocation);
// read up the certificate
X509Certificate2 cert = new X509Certificate2(certLocation);
X509Certificate2 privateKey = new X509Certificate2(privateKeyLocation);
}
我的证书可以正常加载,但我无法加载私钥。我收到“无法找到请求的对象”的消息。
我希望能够从文件中加载私钥和证书,而不是使用存储。这可能吗?我生成证书和私钥时出了问题吗?最终,我想将公钥包含在xml文档中,接收器将解析xml数据并验证私钥和公钥是否匹配。