我需要验证 Azure 函数中连接字符串 (EF Core) 中的证书。
我有这个连接字符串:
Server=**.database.azure.com;Database=dbheat;Uid=****;Pwd=****;SslMode=VerifyCA;SslCert='/'",
需要从 Azure Keyvault 中读取证书及其中的证书。知道如何从 KV 获取证书并将其添加到我的连接字符串中。
如果我手动将证书添加到我的解决方案中,则会收到此错误:
集合已包含具有相同键“net.transport”的项目
现在这是有道理的,因为在天蓝色函数中获取路径给我带来了麻烦,而且我不想将我的证书硬编码到我的函数中。
我通过创建一个允许参数的连接字符串解决了这个问题。
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中的证书
中提琴 - 它有效