gpt4 book ai didi

azure - 如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:58 25 4
gpt4 key购买 nike

如何使用 Azure Powershell 将私有(private)、公共(public)证书上传到 Azure AppService。我知道 New-AzureRmWebAppSSLBinding,但我没有进行任何 SSL 绑定(bind)。

我们有使用 SSL 绑定(bind)的 Azure 应用服务。为此,我使用 New-AzureRmWebAppSSLBinding 上传证书。我确实为网络应用程序上的每个主机上传了一个证书。这很好用。但我想将额外的私有(private)和公共(public)证书上传到此应用程序服务以进行 API 验证。我没有找到任何 azure powershell 命令来上传私有(private)或公共(public)证书。

Azure 门户允许上传私有(private)证书及其密码或公共(public)证书。不过我想使用 powershell 做同样的事情。门户 UI 还可以选择从 key 保管库导入证书。我确实可以将证书上传到 key 保管库,但没有 powershell 命令将其导入到 Azure 应用服务。

<a href="https://ibb.co/Kh7t5DL"><img src="https://i.ibb.co/fFt3X9n/Capture-Cert.jpg" alt="Capture-Cert" border="0"></a>

我已经阅读了这些文章,但它们都使用相同的命令。 https://github.com/Azure/azure-powershell/issues/2108 How to add a certificate to an Azure RM website with Powershell

New-AzureRmWebAppSSLBinding -ResourceGroupName $RGName -WebAppName $webAppName -CertificateFilePath $filePath -CertificatePassword $pass

如果我调用此方法,它会询问主机名。由于我已经为此主机名上传了具有 SSL 绑定(bind)的证书,因此我无法使用它。如果不提供主机名,此命令将失败。

最佳答案

好吧,我终于弄清楚并上传了私有(private)和公共(public)证书。 Azure resource explorer对于理解文件夹结构和证书位置确实很有帮助。

上传公共(public)证书:这些证书是按应用服务附加的。

$webApps = @{
"Dev_AppServicesGroup" = "DevUserService"
}
$certName = "chain-cert.cer"
$Path = "C:\Certs"

$fullpath = $path + '\' + $certname
$pwd = ConvertTo-SecureString -String 'anyPwd' -AsPlainText -Force
$cert = New-AzureRmApplicationGatewaySslCertificate -Name 'someCert' -CertificateFile $fullpath -Password $pwd
$apiVersion = '2018-02-01'

if($cert)
{
$PropertiesObject = @{
blob=$cert.Data;
publicCertificateLocation= "CurrentUserMy"
}

foreach($resourceGroup in $webApps.Keys)
{
$webAppName = $webApps.Item($resourceGroup)
$resource = Get-AzureRmWebApp -ResourceGroupName $resourceGroup -Name $webAppName
$resourceName = $resource.Name + "/"+$certName
New-AzureRmResource -Location $resource.Location -PropertyObject $PropertiesObject -ResourceGroupName $resource.ResourceGroup -ResourceType Microsoft.Web/sites/publicCertificates -ResourceName $resourceName -ApiVersion $apiVersion -Force

#Apply the cert to the deployment slots if any
$slots = Get-AzureRmResource -ResourceGroupName $resource.ResourceGroup -ResourceType Microsoft.Web/sites/slots -ResourceName $webAppName -ApiVersion $apiVersion
foreach($slot in $slots)
{
$resourceName = $slot.Name + "/"+$certName
New-AzureRmResource -Location $slot.Location -PropertyObject $PropertiesObject -ResourceGroupName $slot.ResourceGroupName -ResourceType Microsoft.Web/sites/slots/publicCertificates -ResourceName $resourceName -ApiVersion $apiVersion -Force
}
}
}

上传私有(private)证书:这些证书按资源组上传,可供该组下的所有应用服务使用。

#Private certs needs to be uploaded to each resource group with app services
$resourceGroups = @("Dev_AppServicesGroup1", "Dev_AppServicesGroup2")
$certName = "event-store-user.p12"

$certPwd = "Your certificate password" #This is the private cert password
$Path = "C:\Certs"

$fullpath = $path + '\' + $certname

$pwd = ConvertTo-SecureString -String 'SomePwd' -AsPlainText -Force
$cert = New-AzureRmApplicationGatewaySslCertificate -Name someCert -CertificateFile $fullpath -Password $pwd
$apiVersion = '2018-02-01'

if($cert)
{
$PropertiesObject = @{
pfxBlob=$cert.Data;
password =$certPwd; #This is the private cert password
ResourceType = "Microsoft.Web/Certificates"
}

foreach($resourceGroup in $resourceGroups)
{
$resource = Get-AzureRmResourceGroup -Name $resourceGroup
New-AzureRmResource -ResourceName $certName -Location $resource.Location -PropertyObject $PropertiesObject -ResourceGroupName $resource.ResourceGroupName -ResourceType Microsoft.Web/certificates -ApiVersion $apiVersion -Force
}
}

就是这样。若要上传 SSL 证书并将其绑定(bind)到应用服务,可以使用命令“New-AzWebAppSSLBinding”。

关于azure - 如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57979337/

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