gpt4 book ai didi

.net - "Cannot find the certificate and private key for decryption"用于带私钥的证书 pfx pkcs#12

转载 作者:行者123 更新时间:2023-12-05 00:54:38 25 4
gpt4 key购买 nike

我有以下使用客户端证书进行签名的 .Net 代码 (asp.net)。

我的客户端证书存储在本地计算机下,而不是当前用户。

客户端证书是pfx pkcs#12,有私钥

导入的私钥未标记为可导出。

我在受密码保护的客户端证书中的私钥。

在上面的最后一行,我收到错误“找不到证书和用于解密的私钥”。

使用我的代码时似乎无法访问私钥。

我是否可以将私钥关联到我的客户端证书?有什么建议吗?

public void FirmarConCertificado(string nombreCertificado, X509Certificate2 certificate) 
{
try
{
var mensaje = "Datos de prueba";
System.Text.Encoding enc = System.Text.Encoding.Default;
byte[] data = enc.GetBytes(mensaje);

var contentInfo = new System.Security.Cryptography.Pkcs.ContentInfo(data);
var signedCms = new System.Security.Cryptography.Pkcs.SignedCms(contentInfo, true);

var cmsSigner = new System.Security.Cryptography.Pkcs.CmsSigner(certificate);

// Sign the CMS/PKCS #7 message
signedCms.ComputeSignature(cmsSigner); // <<<<<<< FAILS HERE

// Encode the CMS/PKCS #7 message
var ret = Convert.ToBase64String(signedCms.Encode());

Message.Text += "Firmado con Certificado " + nombreCertificado + " encontrado en " + StoreLocation.LocalMachine;
}
catch (Exception ex)
{
Message.Text = "Error al firmar con certificado: " + ex.ToString();
Message.Text += "<br /><br />InnerException: " + ex.InnerException;
}

}

编辑:AppPool 中的身份可能存在问题。在LocalMachine Store安装证书的用户必须是WebSite的AppPool身份,并且在IIS_WPG组。

解决方案:在域中创建用户,将其添加到 IIS_WPG 组中,并将其添加为 Identity AppPool。使用创建的用户在存储本地计算机中安装证书。

最佳答案

解决方案:在域中创建用户,将其添加到 IIS_WPG 组中,并将其添加为 Identity AppPool。使用创建的用户在存储本地计算机中安装证书。

关于.net - "Cannot find the certificate and private key for decryption"用于带私钥的证书 pfx pkcs#12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com