gpt4 book ai didi

Azure 应用服务 Pfx 证书不可导出

转载 作者:行者123 更新时间:2023-12-03 06:20:46 26 4
gpt4 key购买 nike

我有一个 Azure 应用服务,我们已在其中上传(通过 Key Vault).pfx 文件以将它们添加到证书存储中。我们还添加了配置“WEBSITE_LOAD_CERTIFICATES”以在代码中访问该证书。我们能够成功地将证书检索为 X509Certificate2 对象,但无法将其导出回 pfx 文件。私钥似乎不可导出,但我们需要重新创建 pfx 文件,因为我们需要将其用于 Apache Kafka 的 mSSL 身份验证。知道如何解决这个问题吗?我们遵循 https://learn.microsoft.com/en-us/azure/app-service/configure-ssl-certificate-in-code#load-certificate-from-file 中的步骤。我们得到的错误是,我们得到的错误是“ key 在指定状态下使用无效。”

最佳答案

根据 MSDoc ,证书的私钥在上传到Azure App Service时不可导出。

但是,您可以使用 Azure Key Vault使用私钥导出证书。

从存储加载证书

  X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, CERTIFICATE_THUMB_PRINT, false);
if (certs.Count == 0)
{

}
else
{
certificate = certs[0];
}
store.Close();

将 PFX 上传到 KeyVault

string pfxFile = @"C:\Tools\.pfx";
string certName = "certificateName";
string pfxPword = "secretvalue";
string keyVaultName = "keyVaultName";

Console.WriteLine("..PFX to KeyVault..");
var keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(FetchToken));

var pfx_Bytes = File.ReadAllBytes(pfxFile);
var base64EncodedCert = Convert.ToBase64String(pfx_Bytes);
var res = await keyVaultClient.ImportCertificateAsync(keyVaultUri,
certName,base64EncodedCert,pfxPword);

//Fetch Token
public static async Task<string> FetchToken(string authority,
string resrc,
string scope)
{
string clientId = "ClinetID";
string clientSecret = "ClientSecret";
var authContext = new AuthenticationContext(authority);
var result = await authContext.AcquireTokenAsync(resrc,
new ClientCredential(clientId, clientSecret));

if (result == null)
{
Console.WriteLine("Failed to fetch token...");
throw new ApplicationException("Failed to fetch token...");
}

return result.AccessToken;
}

将 PFX 文件上传到 Key Vault。 enter image description here

有关更多信息,请参阅 SO linkBlog .

关于Azure 应用服务 Pfx 证书不可导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75921818/

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