使用 CLI 将自定义 TLS/SSL 证书绑定到应用服务应用

此示例脚本在应用服务中创建一个应用及其相关资源,然后将自定义域名的 TLS/SSL 证书绑定到该应用。 在此示例中,需要以下项:

  • 访问域注册机构的 DNS 配置页的权限。
  • 要上传和绑定的 TLS/SSL 证书的有效 .PFX 文件及其密码。

如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅

先决条件

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

示例脚本

登录 Azure

通过以下脚本使用订阅进行登录,将 <Subscription ID> 替换为 Azure 订阅 ID。 如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

有关详细信息,请参阅设置有效的订阅以交互方式登录

创建 Web 应用

# Bind a custom TLS/SSL certificate to an App Service app
# set -e # exit if error
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="China East"
resourceGroup="msdocs-app-service-rg-$randomIdentifier"
tag="configure-ssl-certificate-webapp-only.sh"
appServicePlan="msdocs-app-service-plan-$randomIdentifier"
webapp="msdocs-web-app-$randomIdentifier"

# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag

# Create an App Service plan in Basic tier (minimum required by custom domains).
echo "Creating $appServicePlan"
az appservice plan create --name $appServicePlan --resource-group $resourceGroup --sku B1

# Create a web app.
echo "Creating $webapp"
az webapp create --name $webapp --resource-group $resourceGroup --plan $appServicePlan

# Copy the result of the following command into a browser to see the static HTML site.
site="http://$webapp.chinacloudsites.cn"
echo $site
curl "$site"

将准备好的自定义域名映射到 Web 应用

  1. 创建包含以下变量,其中包含完全限定的域名。

    fqdn=<Replace with www.{yourdomain}>
    
  2. 配置 CNAME 记录,该记录将完全限定的域名映射到 Web 应用的默认域名 ($webappname.chinacloudsites.cn)。

  3. 将域名映射到 Web 应用。

    az webapp config hostname add --webapp-name $webappname --resource-group myResourceGroup --hostname $fqdn
    
    echo "You can now browse to http://$fqdn"
    

上传和绑定 SSL 证书

  1. 创建以下变量,其中包含 pfx 路径和密码。

    pfxPath=<replace-with-path-to-your-.PFX-file>
    pfxPassword=<replace-with-your=.PFX-password>
    
  2. 上传 SSL 证书并获取指纹。

    thumbprint=$(az webapp config ssl upload --certificate-file $pfxPath --certificate-password $pfxPassword --name $webapp --resource-group $resourceGroup --query thumbprint --output tsv)
    
  3. 将上传的 SSL 证书绑定到 Web 应用。

    az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI --name $webapp --resource-group $resourceGroup
    
    echo "You can now browse to https://$fqdn"
    

清理资源

使用 az group delete 命令删除资源组以及与其关联的所有资源 - 除非你持续需要这些资源。 其中一些资源在创建和删除时可能要稍等片刻。

az group delete --name $resourceGroup

示例参考

此脚本使用以下命令。 表中的每条命令均链接到特定于命令的文档。

Command 说明
az group create 创建用于存储所有资源的资源组。
az appservice plan create 创建应用服务计划。
az webapp create 创建应用服务应用。
az webapp config hostname add 将自定义域映射到应用服务应用。
az webapp config ssl upload 将 TLS/SSL 证书上传到应用服务应用。
az webapp config ssl bind 将上传的 TLS/SSL 证书绑定到应用服务应用。

后续步骤

有关 Azure CLI 的详细信息,请参阅 Azure CLI 文档

可以在 Azure 应用服务文档中找到其他应用服务 CLI 脚本示例。