与How to add an SSL certificate to an azure website using powershell?
轻微相关我正在尝试通过Powershell将证书添加到Azure RM网站。
我认为没有直接的Azure Powershell命令,需要通过New-AzureRmResource
答案 0 :(得分:3)
查看ARM Template "Microsoft.Web/certificates"
模板需要一个pfxblob和一个密码。
获取pfxblob似乎最简单的方法是通过New-AzureRmApplicationGatewaySslCertificate
(感谢指针的@vigneshaj)读取source,这似乎只是一个本地会话cmdlet。因此,对于应用程序网关来说无关紧要,我们所需要的只是它传回的数据。
$pfx = New-AzureRmApplicationGatewaySslCertificate -Name example `
-CertificateFile E:\PS\example.pfx `
-Password "bananas"
获得这些数据后,我们只需将其插入New-AzureRmResource
即可在Azure上创建我们的证书。
这个问题的一个小问题是,如果你是一个小偷(像我一样)并且你从中国CA那里获得了sha256证书的免费证书,这个过程将剥离签署的证书使用sha256的页面,因此它会回退到TLS 1.2,这会产生错误(至少在Chrome上)
$ResourceLocation = "West Europe"
$ResourceName = "Newcertificate"
$PropertiesObject = @{
pfxBlob = $pfx.Data
password = $pfx.Password
}
New-AzureRmResource -Name $ResourceName -Location $ResourceLocation `
-PropertyObject $PropertiesObject `
-ResourceGroupName examplecomRG `
-ResourceType Microsoft.Web/certificates `
-ApiVersion 2015-08-01 -Force
下一个工作是配置您的Web App以使用该证书。因为这些属性是hostNameSslStates数组的子对象,所以我创建了一个内部哈希表,然后将其附加。我确信这是一种更优雅的方式,但这很有效!
$ResourceName = "ConfuseioWebapp"
$InnerPropertiesObject = @{
name = "www.example.com"
sslState = 1
thumbprint = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
$PropertiesObject = @{
"hostNameSslStates" = [Object[]]$InnerPropertiesObject
}
New-AzureRmResource -Name $ResourceName `
-Location $ResourceLocation `
-PropertyObject $PropertiesObject `
-ResourceGroupName examplecomRG `
-ResourceType Microsoft.Web/sites `
-ApiVersion 2015-08-01 -Force
这就是它。
答案 1 :(得分:3)
在最新版本的Azure PowerShell v 1.1.0中,有许多新命令可以在Azure Web Apps中处理SSL证书
您可以上传证书并使用
将其绑定到主机名New-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -CertificateFilePath PathToPfxFile -CertificatePassword PlainTextPwd -Name www.contoso.com
然后删除绑定但不删除证书,应用程序应该能够在添加引用该证书的应用程序设置后使用它(这应该使用门户网站完成 - PowerShell命令将很快 - 现在没有ETA)
Remove-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -Name www.contoso.com -DeleteCertificate $false
答案 2 :(得分:1)
我遇到了以下文章,该文章通过PowerShell配置SSL,创建了Azure Application Gateway
https://azure.microsoft.com/en-us/documentation/articles/application-gateway-ssl/