使用DNS API来申请证书有个好处,很适合没有固定IP的情况.一般主要应用场景是家庭宽带提供公网服务,比如可以将自己的NAS,路由器,视频监控投放到公网上面.现在所有的服务基本都已经强制使用https,而申请一个互联网信任的证书,可以避免很多麻烦,也能保护网络数据的安全.
1. CloudFlare 使用方法
CloudFlare图名提供了两种方法
1.1 使用全局api key
首先你要登录你的账号去获取 API key.
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" export CF_Email="xxxx@sss.com"
1.2 使用新的cloudflare api token
export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje" export CF_Account_ID="xxxxxxxxxxxxx"
如果使用新的token,可以使DNS区域(zone)可读可写.如果只需要覆盖一个区域(zone),可以限制某个Zone的DNS写访问,并指定CF_Zone_ID:
export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje" export CF_Account_ID="xxxxxxxxxxxxx" export CF_Zone_ID="xxxxxxxxxxxxx"
接下来用命令申请证书:
acme.sh --issue --dns dns_cf -d example.com -d www.example.com
CF_Key CF_Email CF_Token CF_Account_ID将会保存在 in ~/.acme.sh/account.conf ,以后可以重复使用
2. 使用 Name.com API
登录自己name.com的账号,创建你的API,查阅: https://www.name.com/account/settings/api
注意: Namecom_Username 必须是你的用户名而非你的token名. 入如果你不小心已经用token名作为你的用户名运行了脚本,请在配置文件里 ~/.acme.sh/account.conf 去修改正确,很多人会在这一步出现错误.
export Namecom_Username="testuser" export Namecom_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
然后用接下来的命令获取证书:
acme.sh --issue --dns dns_namecom -d example.com -d www.example.com
请注意,你必须关闭两步验证的功能,否则API获取DNS会不成功.如果必须使用两步验证,请查阅这个链接: Using API with Two-step
3. 使用 Namecheap API
需要使用的参数有namecheap的用户名, API KEY (https://www.namecheap.com/support/api/intro.aspx) 和你的认证白名单IP(或者一个连接去获取IP,链接需要认证).
export NAMECHEAP_USERNAME="..." export NAMECHEAP_API_KEY="..." export NAMECHEAP_SOURCEIP="..."
NAMECHEAP_SOURCEIP 可以直接用IP或者一个链接去获取(e.g. https://ifconfig.co/ip).
以上三个参数会写进 ~/.acme.sh/account.conf ,能重复使用.
接下来获取证书.
acme.sh --issue --dns dns_namecheap -d example.com -d *.example.com
4. 使用DNSPod.cn 方法:
首先你需要登录官网获取 DNSPod API Key 和 ID.
export DP_Id="1234" export DP_Key="sADDsdasdgdsf"
然后,开始用命令获取证书:
acme.sh --issue --dns dns_dp -d example.com -d www.example.com
DP_Id 和 DP_Key 会写入 ~/.acme.sh/account.conf 可以重复使用.