前言
现在Let's Encrypt已经开放了泛域的SSL证书申请。申请泛域的SSL证书必须要验证DNS解析才可以,可以通过手动添加DNS记录的方式来申请,也可以通过使用API自动添加DNS记录的方式来申请,这里记录一下利用cloudflare的API申请Let's Encrypt泛域证书的过程。
申请证书
获取cloudflare的API
首先获取cloudflare账户API的TOKEN。
登录到cloudflare账户,然后查看My Profile,点击Global API Key的View API Key,输入密码,保存KEY。
安装amce.sh
安装仅需要一条命令即可。
以下命令可以在任意linux主机执行,无需将域名的A记录指向它。
apt-get install socat -y curl https://get.acme.sh | sh
申请证书
注意,因此acme的目录名前有一个.
所以默认是看不到acme的目录的,可以通过以下命令进入acme目录。
cd .amce.sh
设置cloudflare api。
export CF_Key="刚刚保存下来的KEY" export CF_Email="cloudflare的注册邮箱"
然后申请证书即可。
acme.sh --issue --dns dns_cf -d *.你的域名.com -d 你的域名.com
现在证书,私钥都可以在/root/.acme.sh/*.你的域名.com
目录查看了。
更多nameserver服务商的API使用文档请见:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
更多的使用方法请见:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
[2022年 02月 18日 星期五 09:12:47 EST] Can not init api for: https://acme-v02.api.letsencrypt.org/directory.
写入代码后事这样
可以在https://curl.se/libcurl/c/libcurl-errors.html查看一下错误码的具体信息 ,然后再处理,具体到该问题而言“远程服务器的 SSL 证书或 SSH md5 指纹被认为不正确”,可以再次重试一下。