Acme.sh如何使用DNS API 来获取SSL证书(上)

@Wen's  July 30, 2019

1.使用 CloudFlare 域 API 自动颁发证书

首先,您需要登录您的 CloudFlare 帐户才能获取您的API密钥。

export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export CF_Email="[email protected]"

好的,让我们现在发布一个证书

acme.sh --issue --dns dns_cf -d example.com -d www.example.com

CF_KeyCF_Email将被保存~/.acme.sh/account.conf并且在需要时将被重用。

2.使用 DNSPod.cn 域名 API 自动颁发证书

首先,您需要登录您的DNSPod 帐户才能获取您的API密钥和 ID。

export DP_Id="1234"export DP_Key="sADDsdasdgdsf"

好的,让我们现在发布一个证书

acme.sh --issue --dns dns_dp -d example.com -d www.example.com

DP_IdDP_Key将被保存~/.acme.sh/account.conf并且在需要时将被重用。

注:DNSPod 现在采用 Token 调用API,具体调用办法:

https://www.lizi.tw/soft/5051.html

3.使用 CloudXNS.com 域 API 自动颁发证书

首先,您需要登录您的 CloudXNS 帐户才能获取您的 API 密钥和秘密。

export CX_Key="1234"export CX_Secret="sADDsdasdgdsf"

好的,让我们现在发布一个证书

acme.sh --issue --dns dns_cx -d example.com -d www.example.com

CX_KeyCX_Secret将被保存~/.acme.sh/account.conf并且在需要时将被重用。

4.使用 GoDaddy.com 域 API 自动颁发证书

首先,您需要登录您的 GoDaddy 帐户才能获得您的 API 密钥和秘密。

https://developer.godaddy.com/keys/

请创建一个生产密钥,而不是测试密钥。

export GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export GD_Secret="asdfsdafdsfdsfdsfdsfdsafd"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_gd -d example.com -d www.example.com

GD_KeyGD_Secret将被保存~/.acme.sh/account.conf并且在需要时将被重用。

5.使用 PowerDNS 嵌入式 API 自动颁发证书

首先,您需要登录 PowerDNS帐户才能启用该 API 并在配置中设置您的 API 令牌。

https://doc.powerdns.com/md/httpapi/README/

export PDNS_Url="http://ns.example.com:8081"export PDNS_ServerId="localhost"export PDNS_Token="0123456789ABCDEF"export PDNS_Ttl=60

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_pdns -d example.com -d www.example.com

PDNS_UrlPDNS_ServerIdPDNS_TokenPDNS_Ttl将被保存~/.acme.sh/account.conf,需要时会被重用。

6.使用 OVH / kimsufi / soyoustart / runabove API 自动颁发证书

https://github.com/Neilpang/acme.sh/wiki/How-to-use-OVH-domain-api

7.使用 nsupdate 自动发出证书

首先,生成更新区域的密钥

b=$(dnssec-keygen -a hmac-sha512 -b 512 -n USER -K /tmp foo)cat > /etc/named/keys/update.key <<EOFkey "update" {    algorithm hmac-sha512;    secret "$(awk '/^Key/{print $2}' /tmp/$b.private)";};EOFrm -f /tmp/$b.{private,key}

将此密钥包含在您的命名配置中

include "/etc/named/keys/update.key";

接下来,将您的区域配置为允许动态更新。

取决于您的命名版本,请使用其中一种

zone "example.com" {    type master;    allow-update { key "update"; };};

要么

zone "example.com" {    type master;    update-policy {        grant update subdomain example.com.;    };}

最后,让 DNS 服务器和更新密钥可用 acme.sh

export NSUPDATE_SERVER="dns.example.com"export NSUPDATE_KEY="/path/to/your/nsupdate.key"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_nsupdate -d example.com -d www.example.com

NSUPDATE_SERVERNSUPDATE_KEY设置将被保存在~/.acme.sh/account.conf需要的时候将被重用。

8.使用 LuaDNS 域名 API

通过https://api.luadns.com/settings获取您的 API 令牌

export LUA_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export LUA_Email="[email protected]"

颁发证书:

acme.sh --issue --dns dns_lua -d example.com -d www.example.com

LUA_KeyLUA_Email将被保存~/.acme.sh/account.conf并且在需要时将被重用。

9.使用 DNSMadeEasy 域名 API

通过https://cp.dnsmadeeasy.com/account/info获取您的 API 凭据

export ME_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export ME_Secret="qdfqsdfkjdskfj"

颁发证书:

acme.sh --issue --dns dns_me -d example.com -d www.example.com

ME_KeyME_Secret将被保存~/.acme.sh/account.conf并且在需要时将被重用。

10.使用 Amazon Route53 域 API

https://github.com/Neilpang/acme.sh/wiki/How-to-use-Amazon-Route53-API

export  AWS_ACCESS_KEY_ID=XXXXXXXXXXexport  AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXX

颁发证书:

acme.sh --issue --dns dns_aws -d example.com -d www.example.com

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY将被保存~/.acme.sh/account.conf并且在需要时将被重用。

11.使用 Aliyun 域名 API 自动颁发证书

首先,您需要登录您的 Aliyun 帐户才能获取您的 API 密钥。 https://ak-console.aliyun.com/#/accesskey

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

Ali_KeyAli_Secret将被保存~/.acme.sh/account.conf并且在需要时将被重用。

12.使用 ISPConfig 3.1 API

这只适用于 ISPConfig 3.1(和更新版本)。

在 ISPConfig 控制面板中创建一个远程用户。远程用户至少必须有权访问DNS zone functionsDNS txt functions

export ISPC_User="xxx"export ISPC_Password="xxx"export ISPC_Api="https://ispc.domain.tld:8080/remote/json.php"export ISPC_Api_Insecure=1

如果您在另一个端口上安装了 ISPConfig,请相应地更改 8080。如果您的安装没有有效的 ssl 证书,则 Leaver ISPC_Api_Insecure 设置为 1。如果您拥有有效的 ssl 证书,请将其更改为 0。

颁发证书:

acme.sh --issue --dns dns_ispconfig -d example.com -d www.example.com

ISPC_UserISPC_PasswordISPC_ApiISPC_Api_Insecure将被保存~/.acme.sh/account.conf,需要时会被重用。

13.使用 Alwaysdata 域名 API

首先,您需要登录您的 Alwaysdata 帐户才能获取您的 API 密钥。

导出 AD_API_KEY = “ myalwaysdataapikey ”

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_ad -d example.com -d www.example.com

AD_API_KEY将保存在~/.acme.sh/account.conf需要的时候将被重用。

14.使用 Linode 域名 API

首先,您需要登录您的 Linode 帐户才能获得您的 API 密钥。 https://manager.linode.com/profile/api

然后添加一个标签为ACME的 API 密钥并复制新密钥。

export LINODE_API_KEY = “ ... ”

由于 DNS 记录中任何更改的重新载入时间,我们必须使用该dnssleep选项等待至少 15 分钟才能使更改生效。

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_linode --dnssleep 900 -d xsz.tw -d www.xsz.tw

LINODE_API_KEY将保存在~/.acme.sh/account.conf需要的时候将被重用。

15.使用 FreeDNS

FreeDNS(https://freedns.afraid.org/)不提供更新 DNS 记录的 API(IPv4 和 IPv6 动态 DNS 地址除外)。acme.sh 插件因此通过登录到 FreeDNS 网站来读取并更新域 TXT 记录来读取 HTML 并将更新发布为 HTTP。该插件需要知道 FreeDNS 网站的用户名和密码。

export FREEDNS_User = “ ... ” export FREEDNS_Password = “ ... ”

您只需在第一次使用 FreeDNS 验证运行 acme.sh 客户端时提供此信息,然后在 FreeDNS 站点上更改密码时再次提供此信息。acme.sh FreeDNS 插件不存储您的用户标识或密码,而是保存 FreeDNS 返回的认证标记,~/.acme.sh/account.conf并在需要时重新使用它。

现在您可以颁发证书。

acme.sh --issue --dns dns_freedns -d example.com -d www.example.com

请注意,对于 FreeDNS 公共域或您在 FreeDNS 公共域下创建的子域,不能使用 acme.sh 自动 DNS 验证。您必须拥有顶级域名才能在 FreeDNS 中使用 acme.sh 自动验证。

16.使用 cyon.ch

你只需要设置你的 cyon.ch 登录凭证。如果您还启用了 2 因子身份验证(OTP),则需要设置您的秘密令牌并已oathtool安装。

export CY_Username="your_cyon_username"export CY_Password="your_cyon_password"export CY_OTP_Secret="your_otp_secret" # Only required if using 2FA

颁发证书:

acme.sh --issue --dns dns_cyon -d example.com -d www.example.com

这个CY_UsernameCY_Password并且CY_OTP_Secret将被保存~/.acme.sh/account.conf并且在需要时将被重用。

17.使用 Domain-Offensive / Reseller 界面/ Domainrobot API

您需要将您的登录凭证(合作伙伴 ID +密码)加入经销商界面,并在运行之前导出它们acme.sh

export DO_PID="KD-1234567"export DO_PW="cdfkjl3n2"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_do -d lizi.tw -d www.lizi.tw

18.使用 Gandi LiveDNS API

您必须先启用新的 Gandi LiveDNS API 并创建您的 api 密钥,请参阅:http ://doc.livedns.gandi.net/

export GANDI_LIVEDNS_KEY="fdmlfsdklmfdkmqsdfk"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_gandi_livedns -d example.com -d www.example.com

19.使用结(knsupdate)DNS API 自动颁发证书

首先,生成用于更新区域的 TSIG 密钥。

keymgr tsig generate -t acme_key hmac-sha512 > /etc/knot/acme.key

将此密钥包含在结配置文件中。

include: /etc/knot/acme.key

接下来,将您的区域配置为允许动态更新。

该区域的动态更新可通过适当的 ACL 规则与update动作来实现。有关详细说明,请参阅结 DNS 的文档

acl:  - id: acme_acl    address: 192.168.1.0/24    key: acme_key    action: updatezone:  - domain: example.com    file: example.com.zone    acl: acme_acl

最后,让 DNS 服务器和 TSIG 密钥可用 acme.sh

export KNOT_SERVER="dns.example.com"export KNOT_KEY=`grep \# /etc/knot/acme.key | cut -d' ' -f2`

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_knot -d example.com -d www.example.com

KNOT_SERVERKNOT_KEY设置将被保存在~/.acme.sh/account.conf需要的时候将被重用。

20.使用 DigitalOcean API(本机)

您需要从 DigitalOcean 帐户获取可读写的 API 密钥。请参阅:https : //www.digitalocean.com/help/api/

export DO_API_KEY="75310dc4ca779ac39a19f6355db573b49ce92ae126553ebd61ac3a3ae34834cc"

好的,让我们现在发布一个证书:

acme.sh --issue --dns dns_dgon -d example.com -d www.example.com



添加新评论