【发布时间】:2020-07-02 15:32:28
【问题描述】:
我正在尝试使用使用客户端 ID 和证书连接到密钥保管库。我收到一个错误。在 Program.cs 中添加 .ConfigureAppConfiguration 部分之前,我的代码正在运行。 不知道如何总结整个过程,因为它非常冗长(我主要遵循 youtube 上名为“如何在 .NET Core 中使用 Azure Key Vault(使用证书)安全地存储和加载机密”的教程)。我应该总结一下我在问题结束时采取的步骤吗? (我已将它们记录在一个 40 页的 Word 文档中。)
下面是我的 Program.cs 类的副本(错误在 builder.AddAzureKeyVault 之后立即触发):
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public IConfiguration Configuration { get; set; }
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder =>
{
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var vaultName = configuration.GetSection("KeyVault").GetSection("Vault").Value;
builder.AddAzureKeyVault($"https//{vaultName}.vault.azure.net/",
configuration.GetSection("KeyVault").GetSection("ClientId").Value,
CertificateHelper.GetCertificate(configuration.GetSection("KeyVault").GetSection("Thumbprint").Value),
new PrefixKeyVaultSecretManager("PrefixOfMySecret"));
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
错误是这个(关于 UriFormat,但我不知道它是哪个 Uri)。
System.UriFormatException HResult=0x80131537 消息=无效的 URI: 无法确定 URI 的格式。
Source=System.Private.Uri StackTrace:在 System.Uri.CreateThis(字符串 uri,布尔值 dontEscape,UriKind uriKind) 在 System.Uri..ctor(String uriString) 在 Microsoft.Azure.KeyVault.KeyVaultClient.d__66.MoveNext() 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)等等等等
你会说它似乎与什么有关?
我应该尝试手动访问哪个 Uri 并且一旦确定? 谢谢。
PS。如果它与 $"https//{vaultName}.vault.azure.net/" 相关,我是否可以在浏览器中打开它:http://https//my-keyvault.vault.azure.net/?如果我尝试,我会收到“无法访问此站点”错误。
【问题讨论】:
标签: c# azure ssl-certificate x509certificate azure-keyvault