使用Terraform配置源站证书

更新时间:
复制为 MD 格式

使用Terraform可以为站点配置源站客户端证书,用于回源与源站之间的双向认证(mTLS)。

安装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做简单、快速的操作,例如调试。更多使用限制,请参见使用限制

涉及的资源

配置源站证书

  1. 创建一个名为 main.tf 的配置文件,然后将以下代码复制到配置文件中,用于为站点配置源站客户端证书。请将示例中的证书与私钥替换为您自己的 PEM 内容(勿将真实私钥提交到公共仓库)。

    # 1. 查询当前账号下指定套餐类型的边缘安全加速站点列表
    data "alicloud_esa_sites" "default" {
      plan_subscribe_type = "basic"  # 与控制台套餐一致
    }
    
    # 2. 创建或引用站点(域名与接入方式须与控制台一致)
    resource "alicloud_esa_site" "default" {
      site_name   = "DOMAIN"  # 站点主域名
      instance_id = data.alicloud_esa_sites.default.sites[0].instance_id  # 取自上一步查询的首个站点实例 ID
      coverage    = "overseas"  # 加速区域,按业务选择
      access_type = "NS"  # 接入方式,如 NS / CNAME
    }
    
    # 3. 绑定源站客户端证书(PEM 请替换为实际证书与私钥,勿提交真实私钥)
    resource "alicloud_esa_site_origin_client_certificate" "default" {
      site_origin_client_certificate_name = "exampleCertificate"  # 证书名称,控制台与配置中标识用
      certificate                         = "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n"  # PEM 格式证书正文
      site_id                             = alicloud_esa_site.default.id  # 绑定到上方 alicloud_esa_site
      private_key                         = "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----\n"  # 与证书匹配的 PEM 私钥
    }
  2. 进入配置文件所在目录,执行如下命令,初始化Terraform环境。

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

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

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

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

验证结果

执行terraform show命令

terraform apply 成功后、执行清理资源前,您可以在工作目录中运行以下命令,核对 alicloud_esa_site_origin_client_certificate 资源状态及 site_origin_client_certificate_name 等与配置一致。

terraform show

登录控制台查看

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

  2. 在左侧导航栏,选择源站证书确认已为该站点绑定名称为 exampleCertificate 的源站客户端证书。

(可选)清理资源

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

terraform destroy

相关参考

关键参数说明

Terraform 的 alicloud_esa_site_origin_client_certificate资源中,常用字段说明如下表所示。

参数

说明

备注

site_origin_client_certificate_name

源站客户端证书的名称,用于在控制台与配置中标识该证书。

需在同一站点下唯一。

certificate

PEM 格式的证书内容。

请使用合法 CA 签发或自签名测试证书,勿在文档示例中粘贴生产私钥。

private_key

与证书匹配的 PEM 私钥。

妥善保管;Terraform 状态中可能包含敏感信息,请做好权限与加密。

site_id

所属 ESA 站点的 ID。

通常由 alicloud_esa_site 资源的 id 引用。