全部产品
Search
文档中心

边缘安全加速:使用Terraform配置HTTPS规则

更新时间:Mar 26, 2026

使用Terraform可以快速完成ESA的HTTPS应用配置,包括强制HTTPS、HSTS、随机加密等功能。

安装Terraform并配置权限

在本地安装和配置Terraform

您可以参考安装和配置Terraform,在本地使用Terraform。

  • 由于阿里云账号(主账号)拥有资源的所有权限,其AccessKey一旦泄露风险巨大,所以建议您使用满足最小化权限需求的RAM用户的AccessKey。具体操作方式请参见创建AccessKey

  • 创建环境变量,用于存放身份认证信息。

    AccessKey管理页面上创建和查看您的AccessKey。

    若无对应环境变量,在执行terraform模板时无法确认身份信息,将会导致调用失败。

使用在线服务(免安装和权限配置)

如果您不想安装Terraform,可以直接使用在线服务Cloud Shell

阿里云Cloud Shell是一款帮助您运维的免费产品,预装了Terraform的组件,并配置好身份凭证(Credentials)。因此您可直接在Cloud Shell中运行Terraform的命令。更多信息,请参见使用Terraform快速创建资源

重要

通过Cloud Shell使用Terraform时,由于其销毁特性会导致数据丢失,因此建议您使用Cloud Shell做简单、快速的操作,例如调试。更多使用限制,请参见使用限制

涉及的资源

配置HTTPS应用规则

  1. 创建一个名为 main.tf 的配置文件,然后将以下代码复制到配置文件中,用于配置站点的HTTPS应用规则。

    # 1. 查询已接入ESA的站点信息
    data "alicloud_esa_sites" "default" {
      site_name = "{{DOMAIN}}"  # 替换为实际已接入ESA的站点,如example.com
    }
    
    # 2. 配置HTTPS应用规则
    resource "alicloud_esa_https_application_configuration" "default" {
      site_id                 = data.alicloud_esa_sites.default.sites[0].site_id  # 要配置的站点ID
      rule_name               = "https-app-rule"  # 规则名称
      rule                    = "(http.host eq \"www.{{DOMAIN}}\")"  # 匹配规则,可配置为true匹配所有请求
      rule_enable             = "on"  # 规则开关,on表示开启
      https_force             = "on"  # 强制跳转HTTPS,将HTTP请求重定向为HTTPS
      alt_svc                 = "on"  # 随机加密,浏览器可通过加密TLS链路访问HTTP链接
      hsts                    = "on"  # 响应携带Strict-Transport-Security标头
      hsts_include_subdomains = "on"  # 该域名及所有子域名均开启HSTS
      hsts_preload            = "on"  # 申请加入浏览器内置列表时需要的preload参数
      hsts_max_age            = "15552000"  # HSTS过期时间(秒),客户端在此期间强制使用HTTPS
    }
  2. 进入配置文件所在目录,执行如下命令,初始化Terraform环境。

    terraform init
  3. 执行如下命令,验证Terraform语法与配置。

    terraform validate
  4. 执行如下命令,预览执行结果。

    terraform plan
  5. 执行如下命令,执行Terraform脚本。

    terraform apply
  6. 依据提示输入yes确认执行即可。

验证结果

执行terraform show命令

您可以在工作目录中,使用以下命令查询Terraform已创建资源的详细信息:

terraform show

登录控制台查看

  1. 在ESA控制台选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > HTTPS规则

  3. 在HTTPS规则页面,查看已创建的规则配置,确认规则名称、匹配条件和各项HTTPS功能配置是否符合预期。

(可选)清理资源

当您不再需要上述通过Terraform创建或管理的资源时,请运行terraform destroy命令以释放资源。

terraform destroy

相关参考

HTTPS功能参数说明

Terraform的 alicloud_esa_https_application_configuration资源中,主要参数的说明如下表所示。

参数

说明

详细描述

https_force

强制跳转HTTPS

将客户端到ESA节点的HTTP请求强制重定向为更安全的HTTPS请求。取值:on(开启)、off(关闭)。

alt_svc

随机加密

开启后,浏览器可以通过加密的TLS链路访问HTTP链接,为尚未全量迁移至HTTPS的网站提供一定的安全能力。取值:on(开启)、off(关闭)。

hsts

HSTS

响应是否携带Strict-Transport-Security标头。取值:on(开启)、off(关闭)。

hsts_include_subdomains

HSTS包含子域名

是否将HSTS策略应用于该域名的所有子域名。取值:on(开启)、off(关闭)。

hsts_preload

HSTS预加载

申请将域名加入到浏览器内置列表时需要使用的preload参数。取值:on(开启)、off(关闭)。

hsts_max_age

HSTS过期时间

HSTS Header的过期时间,单位为秒,客户端在此时间段内强制使用HTTPS访问。建议设置为15552000(180天)。

匹配规则语法说明

rule 参数用于定义规则的匹配条件,支持以下常见语法:

  • true:匹配所有传入请求。

  • (http.host eq "www.example.com"):匹配特定主机名的请求。

  • (http.request.uri.path.file_name eq "index.html"):匹配特定路径的请求。

  • (http.host eq "www.example.com" and http.request.uri.path.file_name eq "index.html"):组合多个条件。