You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 4.8升级.NET 6后证书添加代码替换及KV指纹取用咨询

解决方案:从Azure Key Vault安全读取证书指纹

1. 集成Azure Key Vault到配置系统

在Program.cs的LoadConfiguration方法中添加Key Vault作为配置源,让配置系统自动从KV读取敏感数据,无需在appsettings中明文存储指纹:

private static void LoadConfiguration(WebApplicationBuilder builder)
{
    // 保留原有配置加载逻辑(如appsettings.json、环境变量等)
    
    // 加载Key Vault配置
    var kvUri = new Uri(builder.Configuration["KeyVault:Uri"]);
    builder.Configuration.AddAzureKeyVault(
        kvUri,
        new DefaultAzureCredential()
    );
}

注:DefaultAzureCredential会自动适配身份验证:本地开发用Azure CLI/Visual Studio登录身份,Azure部署环境用托管标识,无需手动管理凭据。

2. 在Key Vault中创建对应秘密

在Key Vault里创建秘密,名称设为MyCertificates--MyThumbprint(配置路径的冒号:需替换为双短横线--),值填入证书指纹。

3. 清理appsettings中的敏感配置

删除appsettings.json里MyCertificates下的MyThumbprint项,只保留非敏感的KV地址:

"MyCertificates": {
  // 移除MyThumbprint
},
"KeyVault": {
  "Uri": "https://your-kv-name.vault.azure.net/"
}

4. 配置Key Vault访问权限

  • Azure部署:给应用的托管标识(系统/用户分配)分配Key Vault Secrets User角色,允许读取秘密。
  • 本地开发:确保本地Azure CLI/Visual Studio已登录拥有KV秘密读取权限的账号。

5. 原有代码无需改动

RegisterClients和证书加载逻辑保持原样即可,IConfiguration会自动从Key Vault获取MyCertificates:MyThumbprint的值:

services.AddHttpClient<IMyClient, MyClient>("MPC", c =>
{
    c.DefaultRequestHeaders.ExpectContinue = true;
    c.BaseAddress = new Uri(configuration.GetConnectionString("Url"));
}).ConfigurePrimaryHttpMessageHandler(() =>
    new HttpClientHandler().AddClientCertificate(configuration.GetValue<string>("MyCertificates:MyThumbprint")));

这样就完成了敏感指纹的安全存储与读取,避免明文暴露风险。

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:43:13