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

2018-03-22 0 7,367 百度已收录

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 Acme.sh如何使用DNS API 来获取SSL证书 https://www.lizi.tw/soft/5049.html

建筑工地上施工员,闲暇时弄个博客打发时间,

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
2 条评论
king
2019年10月30日 下午1:13 回复

Ali_dns 申请ssl 出现问题 想请教一下

    2019年11月3日 下午7:19 回复

    @king 1、阿里的账户
    2、申请的时候域名需要填写你自己的。
    其他好像没有什么地方需要调整的。
    如果觉得不太好处理
    建议绑定dnspod 在腾讯申请SSL 图形化界面,简单方便

官方客服团队

为您解决烦忧 - 24小时在线 专业服务

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

分享本文封面