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


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

直接贴代码:

  • zerossl.tf
  1. terraform {
  2. required_providers {
  3. acme = {
  4. source = "vancluever/acme"
  5. version = "~> 2.15"
  6. }
  7. }
  8. }
  9. provider "acme" {
  10. server_url = "https://acme.zerossl.com/v2/DV90"
  11. }
  12. resource "tls_private_key" "private_key" {
  13. algorithm = "RSA"
  14. }
  15. resource "acme_registration" "reg" {
  16. account_key_pem = tls_private_key.private_key.private_key_pem
  17. email_address = "nobody@ahfiu-zhang.com"
  18. external_account_binding {
  19. key_id = " xxxx" // zerossl 网站上的用户 id 和密码
  20. hmac_base64 = "xxxx"
  21. }
  22. }
  23. resource "acme_certificate" "certificate" {
  24. account_key_pem = acme_registration.reg.account_key_pem
  25. common_name = "ahfiu-zhang.com"
  26. dns_challenge {
  27. provider = "cloudflare"
  28. config = {
  29. CLOUDFLARE_DNS_API_TOKEN = "在 cloudflare 站点上申请 token"
  30. #CF_ZONE_API_TOKEN = "xxxxx"
  31. # 上面一行一定不要加,加了就会出现错误: cloudflare: failed to find zone ahfu-zhang.com: ListZonesContext command failed
  32. CLOUDFLARE_TTL = "150" #cloudflare: invalid TTL, TTL (60) must be greater than 120
  33. }
  34. }
  35. }
  36. output "certificate_pem" {
  37. description = "The certificate in PEM format."
  38. value = acme_certificate.certificate.certificate_pem
  39. }
  40. output "fullchain_pem" {
  41. description = "The certificate concatenated with the intermediate certificate of the issuer."
  42. value = join("", [
  43. acme_certificate.certificate.certificate_pem,
  44. acme_certificate.certificate.issuer_pem
  45. ])
  46. }
  47. output "issuer_pem" {
  48. description = "The intermediate certificate of the issuer."
  49. value = acme_certificate.certificate.issuer_pem
  50. }
  51. output "private_key_pem" {
  52. description = "The certificate's private key, in PEM format."
  53. #value = tls_private_key.certificate.private_key_pem
  54. value = tls_private_key.private_key.private_key_pem
  55. sensitive = true
  56. }
  • zerossl 上申请证书,需要提供 eab 账号。

执行命令来运行:

  1. terraform init
  2. terraform validate && terraform plan
  3. terraform apple -auto-approve

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

  1. 抓取oschina上面的代码分享python块区下的 标题和对应URL

    # -*- coding=utf-8 -*- import requests,re from lxml import etree import sys reload(sys) sys.setdefau ...

  2. PHP 图片文件上传代码分享

    分享下php上传图片文件的一段代码,挺不错的. 通过 PHP,可以把文件上传到服务器.加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 当然了,会禁止上传php文件,以及其它程序代 ...

  3. (实用篇)php处理单文件、多文件上传代码分享

    php处理  单文件.多文件上传实例代码,供大家参考,具体内容如下 后台处理文件submit_form_process.php <?php /************************** ...

  4. 新开源HTML5单文件网页版ACME客户端,可在线申请Let's Encrypt、ZeroSSL免费HTTPS多域名通配符泛域名SSL/TLS证书(RSA/ECC/ECDSA)

    目录 开源项目的起源 项目地址 使用方法 第一步:选择Let's Encrypt.ZeroSSL或其他证书颁发机构 第二步:证书配置,填写域名 第三步:完成域名所有权的验证 第四步:下载保存证书PEM ...

  5. JAVA基础代码分享--求圆面积

    问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...

  6. .net之工作流工程展示及代码分享(四)主控制类

    现在应该讲主控制类了,为了不把系统弄得太复杂,所以就用一个类作为主要控制类(服务类),作为前端.后端.业务逻辑的控制类. WorkflowService类的类图如下: 该类的构造函数: public ...

  7. .net之工作流工程展示及代码分享(二)工作流引擎

    在介绍完表单类的时候,接下来介绍工作流引擎,主要由四个类组成,分别是流程.流程步骤.流程实例.流程步骤实例类. 流程类: [Serializable] public class Flow { [Xml ...

  8. .net之工作流工程展示及代码分享(预告)

    最近在帮公司做一个工作流程序模块,要求是可以嵌入到各种现有的程序中去.我想把自己制作的思路和过程同大家分享. 先上一张结构图: 由于该项目我一个人做,所以系统结构不能太复杂. 用到的技术主要有:DDD ...

  9. 20款jquery下拉导航菜单特效代码分享

    20款jquery下拉导航菜单特效代码分享 jquery仿京东商城左侧分类导航下拉菜单代码 jQuery企业网站下拉导航菜单代码 jQuery css3黑色的多级导航菜单下拉列表代码 jquery响应 ...

  10. wemall软件交易平台微信图文编辑器部分代码分享

    wemall软件交易平台微信图文编辑器部分代码,可下载: controller.php <?php date_default_timezone_set("Asia/chongqing& ...

随机推荐

  1. 火山引擎 DataTester:5 个优化思路,构建高性能 A/B 实验平台

    导读:DataTester 是由火山引擎推出的 A/B 测试平台,覆盖推荐.广告.搜索.UI.产品功能等业务应用场景,提供从 A/B 实验设计.实验创建.指标计算.统计分析到最终评估上线等贯穿整个 A ...

  2. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0(中)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  3. Appium介绍及第一个例子

    Appium介绍 appium是开源的移动端自动化测试框架 appium可以测试原生的,混合的,以及移动端的项目 appium可以测试ios,android应用 appium是跨平台的,可以用在osx ...

  4. Spring Cloud整体架构解析

    Spring Cloud整体架构 Spring Cloud的中文名我们就暂且称呼它为"春云"吧,听上去是多么朴实无华的名字,不过呢一般名字起的低调的都是厉害角色,我们就看看Spri ...

  5. JSP常见错误以及解决方案

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本节我们分析一下常见的 JSP 错误信息,并给出解决方案.这些错误在实际开发中会经常遇到,所以有 ...

  6. 2019CCPC-江西省赛(重现赛)队伍题解

    2019CCPC江西省赛(重现赛) 第一次组队(和队内dalao:hzf)参加比赛,这次比赛使用的是我的笔电,但因为我来的比较晚,没有提前磨合:比如我的64键位键盘导致hzf突然上手不习惯. Solv ...

  7. vue-cli3开启gzip压缩

    首先添加yarn add 插件 "compression-webpack-plugin" 然后在vue.config.js里引入 在configureWebpack里增加插件代码. ...

  8. C#排序算法4:希尔排序

    希尔排序是插入排序的一种又称"缩小增量排序"(Diminishing Increment Sort),它是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减 ...

  9. ORA-00947:Not enough values (没有足够的值)

    1.问题 2.解决方式 大概率是关系表实际列数大于你所填的元素个数,请检查是否有疏漏的列即可. 我这里是以为代理键直接忽略不写即可,没有标明具体插入列,但是还是得标明才行 --创建图书目录表TITLE ...

  10. Oracle索引&约束

    Oracle索引&约束 1索引的原理 索引是一种允许直接访问数据表某一数据行的树形结构,为了提高查询效率而引入,是独立于表的对象,可以存放在与表不同的表空间(TABLESPACE)中 索引记录 ...