• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

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

软件 举个栗子 1年前 (2018-03-22) 1590次浏览 0个评论 扫描二维码

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

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

export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"

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

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 <<EOF
key "update" {
    algorithm hmac-sha512;
    secret "$(awk '/^Key/{print $2}' /tmp/$b.private)";
};
EOF
rm -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="xxxx@sss.com"

颁发证书:

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=XXXXXXXXXX
export  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: update

zone:
  - 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

21.使用 ClouDNS.net API

您需要设置 HTTP API 用户标识和密码凭证。请参阅:https//www.cloudns.net/wiki/article/42/。出于安全原因,建议使用只能访问必要区域的子用户 ID,因为常规 API 用户可以访问整个帐户。

# Use this for a sub auth ID
export CLOUDNS_SUB_AUTH_ID=XXXXX
# Use this for a regular auth ID
#export CLOUDNS_AUTH_ID=XXXXX
export CLOUDNS_AUTH_PASSWORD="YYYYYYYYY"

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

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

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

22.使用 Infoblox API

首先,您需要在 Infoblox 设备上创建/获取 API 凭据。

export Infoblox_Creds="username:password"
export Infoblox_Server="ip or fqdn of infoblox appliance"

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

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

注意:此脚本将自动创建并删除临时 txt 记录。该Infoblox_CredsInfoblox_Server将被保存~/.acme.sh/account.conf并且在需要时将被重用。

23.使用 VSCALE API

首先,您需要在设置面板上创建/获取 API 令牌。

VSCALE_API_KEY="sdfsdfsdfljlbjkljlkjsdfoiwje"

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

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

24.使用 Dynu API

首先,您需要从 Dynu 帐户创建/获取 API 凭据。请参阅:https//www.dynu.com/resources/api/documentation

export Dynu_ClientId="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
export Dynu_Secret="yyyyyyyyyyyyyyyyyyyyyyyyy"

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

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

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

25.使用 DNSimple API

首先,您需要登录您的 DNSimple 帐户并生成新的 oauth 标记。

https://dnsimple.com/a/{your帐户 ID} /帐户/ access_tokens

请注意,这是一个帐户令牌,而不是用户令牌。需要帐户令牌来推断account_id使用的请求。用户令牌将无法确定要使用的正确帐户。

export DNSimple_OAUTH_TOKEN="sdfsdfsdfljlbjkljlkjsdfoiwje"

要颁发证书只需指定dns_dnsimpleAPI。

acme.sh --issue --dns dns_dnsimple -d example.com

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

如果您对此集成有任何问题,请将其报告至 https://github.com/pho3nixf1re/acme.sh/issues

26.使用 NS1.com API

export NS1_Key="fdmlfsdklmfdkmqsdfk"

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

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

27.使用 DuckDNS.org API

export DuckDNS_Token="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"

请注意,由于 DuckDNS 使用 StartSSL 作为他们的证书提供者,因此在颁发证书时可能需要使用–insecure:

acme.sh --insecure --issue --dns dns_duckdns -d mydomain.duckdns.org

有关问题,请报告https://github.com/raidenii/acme.sh/issues

28.使用 Name.com API

您需要在https://www.name.com/reseller/apply填写表格以申请 API 用户名和标记。

export Namecom_Username="testuser"
export Namecom_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

现在您可以通过以下方式签发证书:

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

有关问题,请报告https://github.com/raidenii/acme.sh/issues

29.使用 Dyn Managed DNS API 自动颁发证书

首先,登录您的 Dyn Managed DNS 帐户:https : //portal.dynect.net/login/

建议添加特定于 API 访问的新用户。

要求的最低“区域和记录权限”是:

RecordAdd
RecordUpdate
RecordDelete
RecordGet
ZoneGet
ZoneAddNode
ZoneRemoveNode
ZonePublish

将 API 用户凭据传递给环境:

export DYN_Customer="customer"
export DYN_Username="apiuser"
export DYN_Password="secret"

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

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

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

30.使用 pdd.yandex.ru API

export PDD_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

按照这些说明获取您的域的令牌https://tech.yandex.com/domain/doc/concepts/access-docpage/

acme.sh --issue --dns dns_yandex -d mydomain.example.org

有关问题,请报告https://github.com/non7top/acme.sh/issues

31.使用 Hurricane Electric

Hurricane Electric(https://dns.he.net/)没有 API,因此只需设置您的登录凭证,如下所示:

export HE_Username="yourusername"
export HE_Password="password"

然后你可以发行你的证书:

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

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

请将任何问题报告给https://github.com/angel333/acme.shme@ondrejsimek.com

32.使用 UnoEuro API 自动颁发证书

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

export UNO_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export UNO_User="UExxxxxx"

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

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

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

33.使用 INWX

INWX提供一个 带有标准登录凭证的xmlrpc api,将它们设置为:

export INWX_User="yourusername"
export INWX_Password="password"

然后你可以用你的证书签发:

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

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

34.用户 Servercow API v1

从 servercow 控制中心创建一个新用户。不要忘记为这个用户激活DNS API

export SERVERCOW_API_Username=username
export SERVERCOW_API_Password=password

现在你不能颁发证书:

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

两者,SERVERCOW_API_Username并且SERVERCOW_API_Password将被保存~/.acme.sh/account.conf,需要时会被重用。

35.使用 Namesilo.com API

您需要在https://www.namesilo.com/account_api.php上生成 API 密钥。 您可以选择将访问权限限制在此处的 IP 范围。

export Namesilo_Key="xxxxxxxxxxxxxxxxxxxxxxxx"

现在您可以通过以下方式签发证书:

acme.sh --issue --dns dns_namesilo --dnssleep 900 -d example.com -d www.example.com

36.使用 autoDNS(InternetX)

InternetX提供 带有标准登录凭据的xml api,将它们设置为:

export AUTODNS_USER="yourusername"
export AUTODNS_PASSWORD="password"
export AUTODNS_CONTEXT="context"

然后你可以用你的证书签发:

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

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

37.使用 Azure DNS

您必须先创建一个服务主体。请参阅:如何使用 Azure DNS

export AZUREDNS_SUBSCRIPTIONID="12345678-9abc-def0-1234-567890abcdef"
export AZUREDNS_TENANTID="11111111-2222-3333-4444-555555555555"
export AZUREDNS_APPID="3b5033b5-7a66-43a5-b3b9-a36b9e7c25ed"
export AZUREDNS_CLIENTSECRET="1b0224ef-34d4-5af9-110f-77f527d561bd"

然后你可以用你的证书签发:

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

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

38.使用 selectel.com(selectel.ru)域 API 自动颁发证书

首先,您需要登录您的帐户以获取 API 密钥:https//my.selectel.ru/profile/apikeys

导出 SL_Key =  sdfsdfsdfljlbjkljlkjsdfoiwje 

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

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

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

39.使用 zonomi.com 域 API 自动颁发证书

首先,您需要登录到您的帐户以查找您的 API 密钥:http: //zonomi.com/app/dns/dyndns.jsp

您将在示例网址中找到您的 API 密钥:

https://zonomi.com/app/dns/dyndns.jsp host = example.com  api_key = 1063364558943540954358668888888888
export ZM_Key =  1063364558943540954358668888888888 

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

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

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

40.使用 DreamHost DNS API

DNS API 密钥可以在https://panel.dreamhost.com/?tree=home.api上创建。确保创建的密钥添加和删除 privelages。

export DH_API_Key="<api key>"
acme.sh --issue --dns dns_dreamhost -d example.com -d www.example.com

‘DH_API_KEY’将被保存~/.acme.sh/account.conf并在需要时重新使用。

41.使用 DirectAdmin API

DirectAdmin 接口具有它自己的让我们加密功能,但是此脚本可用于为不在 DirectAdmin 上托管的名称生成证书

用户必须提供登录数据和 URL 到 DirectAdmin incl。港口。您可以创建只能访问的用户

  • CMD_API_DNS_CONTROL
  • CMD_API_SHOW_DOMAINS

通过使用登录密钥功能。另见https://www.directadmin.com/api.phphttps://www.directadmin.com/features.php?id=1298

export DA_Api="https://remoteUser:remotePassword@da.domain.tld:8443"
export DA_Api_Insecure=1

设置DA_Api_Insecure为 1 表示不安全,0 表示安全 – >区别在于是否检查 ssl 证书的有效性(0)或是否接受(1)

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

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

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

使用自定义 API

如果你的 API 还不被支持,你可以编写你自己的 DNS API。

假设你想命名为’myapi’:

  1. 创建一个名为 bash 的脚本~/.acme.sh/dns_myapi.sh
  2. 在脚本中,您必须有一个名为dns_myapi_add()acme.sh 的函数来添加 DNS 记录。
  3. 然后你可以使用你的 API 来颁发这样的证书:
acme.sh --issue --dns dns_myapi -d example.com -d www.example.com

有关更多详细信息,请查看我们的示例脚本:dns_myapi.sh

请参阅:https: //github.com/Neilpang/acme.sh/wiki/DNS-API-Dev-Guide

使用词典 DNS API

https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Acme.sh 如何使用 DNS API 来获取 SSL 证书
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址