在我的连接字符串、EF Core + Azure 函数中验证来自密钥保管库的证书

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

我需要验证 Azure 函数中连接字符串 (EF Core) 中的证书。

我有这个连接字符串:

Server=**.database.azure.com;Database=dbheat;Uid=****;Pwd=****;SslMode=VerifyCA;SslCert='/'",

需要从 Azure Keyvault 中读取证书及其中的证书。知道如何从 KV 获取证书并将其添加到我的连接字符串中。

如果我手动将证书添加到我的解决方案中,则会收到此错误:

集合已包含具有相同键“net.transport”的项目

现在这是有道理的,因为在天蓝色函数中获取路径给我带来了麻烦,而且我不想将我的证书硬编码到我的函数中。

c# azure-functions azure-keyvault
1个回答
0
投票

我通过创建一个允许参数的连接字符串解决了这个问题。

var connectionstring = new MySqlConnector.MySqlConnectionStringBuilder()
{   
    Server = "whatever.mysql.database.azure.com",
    Database = "db",
    UserID = "un",
    Password = "password",
    SslMode= MySqlConnector.MySqlSslMode.VerifyCA,
    SslCert = cert.ToString()

}.ToString();

然后我创建了一个变量来存储我的 pem 详细信息 - PEM 中 BEGIN CERTIFICATE 之后的内容,然后使用

var cert = new X509Certificate2(Convert.FromBase64String(certpem));

获取字符串作为.net中的证书

中提琴 - 它有效

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