gpt4 book ai didi

c# - 使用 key 保管库中的证书创建 Azure Web 应用 SSL 绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 01:38:55 24 4
gpt4 key购买 nike

我正在尝试使用从 key 保管库检索的证书将 SSL 添加到 Azure Web 应用程序。我没有找到通过门户执行此操作的方法,因此我一直尝试使用 Azure API 来执行此操作。

我可以使用以下代码获取证书 secret 并将其转换为 X509 证书:

 AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));

SecretBundle secret2 = await keyVaultClient.GetSecretAsync(KEY_VAULT_IDENTIFIER);
string pass = null;
X509Certificate2 certificate = new X509Certificate2(Convert.FromBase64String(secret2.Value), pass, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

说实话,我不知道下一步该做什么。我一直在研究 Microsoft.Azure.Management.Fluent 库,但无法让任何东西发挥作用。

我的方向正确吗?是否有任何可能有帮助的示例?

最佳答案

对于 C# 代码,您可以使用 Azure Management Libraries for .NET

您可以使用以下 2 个 Nuget 包:

  • Microsoft.Azure.Management.Fluent

  • Microsoft.Azure.Management.ResourceManager.Fluent

身份验证

您可以阅读guidance here

第一步是为 RBAC 创建服务主体,为其授予相关资源组的权限,然后在前面的代码中使用 clientId、 secret 和租户信息。

az ad sp create-for-rbac

代码

        string clientId = "xxxxx-xxx-xxxx";
string clientSecret = "xxxxx-xxx-xxxx";
string tenant = "xxxxx-xxx-xxxx";
string subscriptionId = "xxxxx-xxx-xxxx";

var creds = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, clientSecret, tenant, AzureEnvironment.AzureGlobalCloud);
var azure = Azure.Authenticate(creds).WithSubscription(subscriptionId);

var app1 = azure.WebApps.GetByResourceGroup("rgAppService", "MyAPIServiceName");

app1.Update()
.DefineSslBinding()
.ForHostname("MyHostName")
.WithExistingCertificate("<Thumbprint of the certificate>")
.WithSniBasedSsl() // could use different method .WithIpBasedSsl in case that is relevant
.Attach()
.Apply();

GitHub 上的详细代码示例

Managing Web Apps with custom domains in C#

此示例执行了很多操作,例如创建应用程序、域等,因此请选择适合您的部分。

关于c# - 使用 key 保管库中的证书创建 Azure Web 应用 SSL 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55716510/

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