如何在Azure环境中从.pfx文件创建证书?

问题描述 投票:0回答:1

我正在尝试在Azure函数中初始化C#中的x509Certificate2类的新实例,如下所示:

X509Certificate2 cert = new X509Certificate2((certPath + @"/integration_certificate.pfx"), "pw", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet| X509KeyStorageFlags.Exportable);

我在本地执行该函数时工作正常,但是当它在Azure上执行时,我收到以下错误:

Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The specified network password is not correct
   at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags)
   at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)

我在Kudu上使用OpenSSL检查我是否使用了正确的密码,然后检查出来。我能够阅读有关证书的信息,一切看起来都是正确的。

我也尝试过将证书上传到Azure(看起来是正确的方法),不包括在源代码中,但由于私钥只有1024位长,所以无法让它工作,所以Azure不做不接受。证书是由第三方生成的,所以我认为我不可能以不同方式生成证书。

有没有人有什么建议?我目前正在使用.NET标准2.0作为目标框架btw。

c# azure azure-functions .net-standard x509certificate2
1个回答
0
投票

我认为这个过程也应该有访问权限。

此外,在Azure中上载SSL证书时,必须满足一些要求。

•证书必须包含私钥。

•必须为密钥交换创建证书,该证书可导出到个人信息交换(.pfx)文件。

•证书的主题名称必须与用于访问网站的域名相匹配。如果需要使用此证书提供多个域,则需要使用通配符值或指定subjectAltName值。

•证书应至少使用2048位加密。

我希望您在上传证书时尝试以下选项。

如果您之前没有尝试过,请附上以下链接中的详细信息供您试用。

Binding the Certificates

1st Option

2nd Option

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.