首页 > 其他分享 >【代码分享】使用 terraform, 在 ZeroSSL 上申请托管在 cloudflare 上的域名对应的证书

【代码分享】使用 terraform, 在 ZeroSSL 上申请托管在 cloudflare 上的域名对应的证书

时间:2023-07-18 18:25:05浏览次数:57  
标签:acme certificate pem ZeroSSL private terraform key cloudflare

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


接上一篇:《使用 terraform, 在 Let's Encrypt 上申请托管在 cloudflare 上的域名对应的证书

直接贴代码:

  • zerossl.tf
terraform {
  required_providers {
    acme = {
      source  = "vancluever/acme"
      version = "~> 2.15"
    }
  }
}

provider "acme" {
  server_url = "https://acme.zerossl.com/v2/DV90"
}

resource "tls_private_key" "private_key" {
  algorithm = "RSA"
}

resource "acme_registration" "reg" {
  account_key_pem = tls_private_key.private_key.private_key_pem
  email_address   = "[email protected]"
  external_account_binding {
    key_id      = " xxxx"  // zerossl 网站上的用户 id 和密码
    hmac_base64 = "xxxx"
  }
}

resource "acme_certificate" "certificate" {
  account_key_pem = acme_registration.reg.account_key_pem
  common_name     = "ahfiu-zhang.com"

  dns_challenge {
    provider = "cloudflare"
    config = {
      CLOUDFLARE_DNS_API_TOKEN = "在 cloudflare 站点上申请 token"
      #CF_ZONE_API_TOKEN        = "xxxxx"
      # 上面一行一定不要加,加了就会出现错误: cloudflare: failed to find zone ahfu-zhang.com: ListZonesContext command failed
      CLOUDFLARE_TTL = "150" #cloudflare: invalid TTL, TTL (60) must be greater than 120
    }
  }
}

output "certificate_pem" {
  description = "The certificate in PEM format."
  value       = acme_certificate.certificate.certificate_pem
}

output "fullchain_pem" {
  description = "The certificate concatenated with the intermediate certificate of the issuer."
  value = join("", [
    acme_certificate.certificate.certificate_pem,
    acme_certificate.certificate.issuer_pem
  ])
}

output "issuer_pem" {
  description = "The intermediate certificate of the issuer."
  value       = acme_certificate.certificate.issuer_pem
}

output "private_key_pem" {
  description = "The certificate's private key, in PEM format."
  #value       = tls_private_key.certificate.private_key_pem
  value     = tls_private_key.private_key.private_key_pem
  sensitive = true
}
  • zerossl 上申请证书,需要提供 eab 账号。

执行命令来运行:

terraform init
terraform validate && terraform plan
terraform apple -auto-approve

标签:acme,certificate,pem,ZeroSSL,private,terraform,key,cloudflare
From: https://www.cnblogs.com/ahfuzhang/p/17563795.html

相关文章

  • terraform安装与命令详解 zz
    terraform安装与命令详解by wanzi2021-02-25约3703字-预计阅读8分钟 devops|阅读 92安装TerraformMac系统安装12brewtaphashicorp/tapbrewinstallhashicorp/tap/terraformLinux系统安装ubuntu安装123curl-fsSLhtt......
  • cloudflare-notion-重定向
    添加DNS记录规则-页面规则......
  • 带你掌握利用Terraform不同数据源扩展应用场景
    本文分享自华为云社区《利用Terraform不同数据源扩展应用场景》,作者:kaliarch。一背景在生产环境中使用Terraform进行基础设施编排,通常又一些信息是通过其他外部系统传入,该场数据源为一个接口,需要Terraform具备调用远程接口能力,获取数据进行目标资源编排,处理各种云厂商提供的p......
  • 【代码分享】使用 terraform, 在 Let's Encrypt 上申请托管在 cloudflare 上的域名对
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯运行的流程可以抽象为上图。直接贴代码:letsencrypt.tfterraform{required_providers{acme={source="vancluever/acme"version="......
  • 如何有效检测、识别和管理 Terraform 配置漂移?
    在理想的IaC世界中,我们所有的基础设施实现和更新都是通过将更新的代码推送到GitHub来编写和实现的,这将触发Jenkins或Circle-Ci中的CI/CD流水线,并且这些更改会反映在我们常用的公有云中。但现实并没有这么顺利,原因可能有很多,例如: 公司仍处于云自动化的初级阶段;不......
  • 如何有效检测、识别和管理 Terraform 配置漂移?
    作者|KrishnaduttPanchagnula翻译|Seal软件链接|https://betterprogramming.pub/detecting-identifying-and-managing-terraform-state-drift-997366a74537 在理想的IaC世界中,我们所有的基础设施实现和更新都是通过将更新的代码推送到GitHub来编写和实现的,这将触发Jenki......
  • 如何使用 Terraform 和 Git 分支有效管理多环境?
    作者|SumeetNinawe翻译|Seal软件链接|https://spacelift.io/blog/terraform-environments 通常我们使用Terraform将我们的基础设施定义为代码,然后用TerraformCLI在我们选择的云平台中创建制定的基础设施组件。从表面上看,整个过程看起来似乎不需要花费太多精力。然而当我......
  • 运维自动化之Terraform
    前言Infrastructure-as-Code,Terraform是一个不受平台所限平台的开源工具,它允许开发人员将基础设施编写成为声明性配置文件。Terraform支持众多的云供应商,使得开发人员能够在AWS、GoogleCloud、Azure和Oracle等主流云平台中配置资源。......
  • 一日一技:【最新】再次突破CloudFlare五秒盾付费版(转)
    去年我写了一篇文章:一日一技:如何捅穿CloudFlare的5秒盾 ,这篇文章使用的第三方库『cloudscraper』可以绕过免费版的五秒盾。但遇到付费版就无能为力了。最近在爬币圈的网站,其中有一个网站叫做:Codebase使用的就是付费版的CloudFlare五秒盾。当我们使用CloudScraper去爬时,报错如下......
  • Grafana 系列-GaC-2-Grafana Terraform Provider 基础
    系列文章Grafana系列文章Terraform系列文章概述前文最后总结了我的工具选型:GrafanaTerraformproviderJsonnet我们今天先简单介绍GrafanaTerraformprovider.GrafanaTerraformProviderGrafanaprovider为Grafana提供配置管理资源。是目前Grafana官方提供......