如何使用 Powershell 将证书添加到 Azure RM 网站
How to add a certificate to an Azure RM website with Powershell
与 How to add an SSL certificate to an azure website using powershell?
关系不大
我正在尝试通过 Powershell 将证书添加到 Azure RM 网站。
我认为没有直接的 Azure Powershell 命令,需要通过 New-AzureRmResource
完成
我看到了下面的文章,它通过创建 Azure 应用程序网关通过 powershell 配置 SSL
https://azure.microsoft.com/en-us/documentation/articles/application-gateway-ssl/
通过 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 上创建我们的证书。
这个的小问题是,如果你是一个小气鬼(像我一样)并且你已经从提供 sha256 证书的中国 CA 获得了免费证书,这个过程将被取消使用 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 应用程序以使用该证书。因为这些属性是 hostNameSslStates 数组的子对象,所以我创建了一个内部散列 table,然后附加了它。我敢肯定有一种更优雅的方式,但这行得通!
$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
差不多就这些了。
在最新版本的 Azure PowerShell v 1.1.0 中,有许多新命令用于处理 Azure Web 应用程序中的 SSL 证书
您可以使用
上传证书并将其绑定到主机名
New-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -CertificateFilePath PathToPfxFile -CertificatePassword PlainTextPwd -Name www.contoso.com
然后删除绑定但不删除证书,在您添加引用该证书的应用程序设置后,应用程序应该能够使用它(这应该使用门户来完成 - PowerShell 命令会这样做很快 - 现在没有预计到达时间)
Remove-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -Name www.contoso.com -DeleteCertificate $false
与 How to add an SSL certificate to an azure website using powershell?
关系不大我正在尝试通过 Powershell 将证书添加到 Azure RM 网站。
我认为没有直接的 Azure Powershell 命令,需要通过 New-AzureRmResource
我看到了下面的文章,它通过创建 Azure 应用程序网关通过 powershell 配置 SSL
https://azure.microsoft.com/en-us/documentation/articles/application-gateway-ssl/
通过 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 上创建我们的证书。
这个的小问题是,如果你是一个小气鬼(像我一样)并且你已经从提供 sha256 证书的中国 CA 获得了免费证书,这个过程将被取消使用 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 应用程序以使用该证书。因为这些属性是 hostNameSslStates 数组的子对象,所以我创建了一个内部散列 table,然后附加了它。我敢肯定有一种更优雅的方式,但这行得通!
$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
差不多就这些了。
在最新版本的 Azure PowerShell v 1.1.0 中,有许多新命令用于处理 Azure Web 应用程序中的 SSL 证书
您可以使用
上传证书并将其绑定到主机名New-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -CertificateFilePath PathToPfxFile -CertificatePassword PlainTextPwd -Name www.contoso.com
然后删除绑定但不删除证书,在您添加引用该证书的应用程序设置后,应用程序应该能够使用它(这应该使用门户来完成 - PowerShell 命令会这样做很快 - 现在没有预计到达时间)
Remove-AzureRmWebAppSSLBinding -ResourceGroupName myresourcegroup -WebAppName mytestapp -Name www.contoso.com -DeleteCertificate $false