腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书过程记录

目前使用量最大的免费 SSL 证书就是 Let’s Encrypt 了,在 2018 年 3 月份 Let’s Encrypt 官方发布上线泛域名免费 SSL 证书,现在终于可以申请了。目前通过 DNS 方式获取比较快,国内可以通过腾讯云的 DNSPod 域名 API 和阿里云域名 API 自动颁发 Let’s Encrypt 泛域名 SSL 证书。本文记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书的过程。

要使用腾讯云 API 申请 Let’s Encrypt 泛域名 SSL 证书,首先你得有一个 VPS 空间,比如魏艾斯博客就放在腾讯云服务器上面,没有腾讯云服务器的点我注册,现在搞活动最高 2 折,1 核 1G1M 带宽 766 元/3 年,便宜的很。

腾讯云使用的是 DNSPod 域名,这两家账号是通用的。把要申请免费证书的域名接入到 DNSPod,并使用 DNSPod 的 NS 服务器进行解析,解析生效需要一段时间所以这个工作要提前做了。

一、安装 linux 系统依赖程序

Centos 执行命令:

yum update && yum install curl -y && yum install cron -y && yum install socat -y

老魏这里运行过程中需要输入一次 y 才能继续。大家操作的时候也要注意一下,别输入命令就不管了。

Debian/Ubuntu 执行命令:

apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y

二、安装 ACME.SH

curl https://get.acme.sh | sh

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书,自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书,安装过程不会污染已有的系统任何功能和文件, 所有的修改都限制在安装目录中。

三、获取域名 API

1、腾讯云域名默认使用 DNSPod.cn 做解析,没有 DNSPod 账号要去注册一个,然后把要申请证书的域名使用 DNSPod 的 NS 服务器解析。

2、创建 API,操作参考下图,要注意的是弹出窗口显示完整的 Token,必须复制保存。因为只显示这一次,如果没记住,那就删除这个再重新创建一个。

3、得到 ID 和 KEY 之后,输入以下命令:

export DP_Id=”你的 ID” export DP_Key=”你的 KEY”

执行了上面命令之后,应该会看到类似以下截图的结果。

4、申请签发证书命令:

~/.acme.sh/acme.sh –issue –dns dns_dp -d vpsss.net -d *.vpsss.net

记得把 vpsss.net 换成你的域名哦。等待程序自动申请完毕。看到如下图所示就说明申请成功了。

5、证书文件自动存放在/root/.acme.sh/域名文件夹中。按需下载到本地保存或者是应用证书的时候调用这个目录下面的证书。本文使用的脚本会创建 cronjob,用于每天 0:00 点自动检测所有的证书,如果快过期了就自动更新证书。

6、目前 lnmp1.4 不支持 Let’s Encrypt 泛域名 SSL 证书,lnmp1.5 测试版和宝塔面板可以使用。宝塔面板用到的是 fullchain.cer 和 vpsss.net.key,用 sftp 软件下载到本地电脑,用记事本打开这两个文件, 复制内容放到宝塔面板中就可以了。

以上是腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书过程记录,本文中用到的 ACME.SH 脚本可以自动续期,很实用的功能。