gpt4 book ai didi

Azure - X509Certificate2 构造函数错误(.Net Core): The network password is not correct

转载 作者:行者123 更新时间:2023-12-02 08:03:08 28 4
gpt4 key购买 nike

我正在从项目中的嵌入式资源文件加载 .pfx 证书。嵌入式资源文件已正确加载,并且我正确获取了原始数据 - 代码:

 using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
try
{
Byte[] raw = new Byte[stream.Length];

for (Int32 i = 0; i < stream.Length; i++)
{
raw[i] = (Byte)stream.ReadByte();
}
//X509Certificate2 cert = new X509Certificate2(raw, password);
X509Certificate2 cert = new X509Certificate2(raw, password, X509KeyStorageFlags.MachineKeySet);
//Both of the above attempts give me invalid network password
//errors on Azure.
builder.AddSigningCredential(cert);
builder.AddValidationKey(cert);
}
catch (Exception e)
{
//Notify me of exception
}
} //end using

但是,当尝试初始化新的 X509Certificate2 对象时,我认为它正在尝试访问存储中不存在的更多证书或其他内容

(根据这个问题:

ASP.NET - The specified network password is not correct

)

完整错误:Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException:指定的网络密码不正确 在Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData,SafePasswordHandle密码,PfxCertStoreFlags pfxCertStoreFlags) 在Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte [] rawData,字符串文件名,SafePasswordHandle密码,X509KeyStorageFlags keyStorageFlags) 在 System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, 字符串密码, X509KeyStorageFlags keyStorageFlags)

最佳答案

我最终下载了一个 x64 OpenSSL 二进制文件(您可以在此链接中查看可用二进制文件的列表:https://wiki.openssl.org/index.php/Binaries)。

使用 OpenSSL,您可以创建可用于创建 X509Certificate2 对象的 .pfx 文件,比使用 Microsoft 的工具更轻松。

基本上,您将获得一个 zip 文件,将其解压缩,然后使用 Windows 命令行运行 bin 文件夹中的 openssl.ex。以下是您如何成为自己的根 CA,生成私钥,从中创建根证书,然后最终使用您的私钥和根证书创建 .pfx 证书文件(以这种方式正确生成 .pfx 后,您将绕过 Microsoft 的想法,并能够将您的证书从 .pfx 文件加载到 X509Certificate2):

这些命令来自 Window 命令行,与 openssl.exe 位于同一文件夹中:

  1. 使用 openssl 生成 rsa 私钥:

openssl genrsa -out myPrivateKey.rsa 2048

  • 成为您自己的根 CA,获取您的证书:
  • openssl req -new -x509 -days 3652 -key myPrivateKey.rsa -out rootCertificate.crt

  • 创建 pfx 文件(pkcs12 格式 .pfx 文件):
  • openssl pkcs12 -export -out MyCertificate.pfx -inkey myPrivateKey.rsa -in rootCertificate.crt

  • 在 Visual Studio 2017 解决方案资源管理器中右键单击您的项目,选择“添加现有项”,选择您的 MyCertificate.pfx 文件,然后单击“确定”。右键单击该文件,选择属性,对于构建操作,选择“嵌入资源”。

  • 使用我问题中的代码。您可以取消注释该行:

    X509Certificate2 cert = new X509Certificate2(原始,密码);

  • 并摆脱另一行尝试。现在它可以正常工作了。(本例中的资源名称变量为“Your.Project.Namespace.MyCertificate.pfx”)

    关于Azure - X509Certificate2 构造函数错误(.Net Core): The network password is not correct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50991434/

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