如何解决X509Certificate2 私钥
我正在尝试使用本地机器证书对信封进行签名,当我发送请求时,“签名无效”被忽略。
我有一个旧代码,它在使用 X509Certificate (Microsoft.Web.Services.Security.X509) 的 .Net Framework 上运行良好
X509Certificate cert = this.GetX509Certificate;
SignedXml signedXml = new SignedXml(envelope);
signedXml.SigningKey = cert.Key; // This is working
现在我需要在 .Net Core 中重写整个内容,并且我使用的是 X509Certificate2 (System.Security.Cryptography.X509Certificates)
cert.Key 不存在。所以我使用以下内容:
X509Certificate2 cert = this.GetX509Certificate;
SignedXml signedXml = new SignedXml(envelope);
Reference bodyReference = new Reference();
bodyReference.Uri = "#Body";
bodyReference.DigestMethod = SignedXml.XmlDsigSHA1Url;
XmlDsigExcC14NTransform trans = new XmlDsigExcC14NTransform();
bodyReference.AddTransform(trans);
signedXml.AddReference(bodyReference);
signedXml.SignedInfo.SignatureMethod = SignedXml.XmlDsigRSASHA1Url;
signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/2001/10/xml-exc-c14n#";
signedXml.SigningKey = cert.GetRSAPrivateKey() // This is not working
CspKeyContainerInfo 的差异可能是这里的问题吗?如果是这样,我该如何改变?
我还重新设置了 DigestMethod、SignatureMethod 和 CanonicalizationMethod 的值,以匹配 .Net Framework 中工作代码下的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。