总览

一共分为以下几步:

  1. 安装acme.sh脚本
  2. 添加RAM账户并给予相关的权限
  3. 通过acme.sh签发证书
  4. 在nginx中完成配置

安装acme.sh脚本

运行指令:

curl  https://get.acme.sh | sh
source ~/.bashrc

之后acme.sh就会被自动安装。执行这个指令时,root权限不是必须的,但能有的话最好不过。
安装完成后可以通过acme.sh --help来确认安装。安装好后文件应当存放在~/.acme.sh/

添加阿里云RAM账户并赋予权限

虽然是使用阿里云作为范例,但其他域名服务商一般也有类似的功能,能找到的话就可以用

创建RAM用户

打开阿里云的RAM控制台,点击左侧的用户前往创建用户。
RAM账户创建位置.png
进入后点击蓝色的创建用户按钮,进入下图界面填写信息。
输入登录名称,并勾选OpenAPI调用访问。之后点确定创建用户。
创建用户.png
在创建用户后,会提供给你AccessKey Id与Secret,请一定要保存好或者点击左上角的下载CSV,退出该界面后将无法再查看该信息,保存好后点左上角返回键回到用户管理界面。
AccessKey.png

赋予权限

创建完用户后,点击用户的添加权限按钮,为新创建的用户添加权限
添加权限-1.png
在权限选择界面搜索dns,并勾选下图中所示的两项权限。之后点击确认授予保存。
添加权限-2.png

通过acme.sh签发证书

配置环境变量

回到acme.sh,找出刚才保存的AccessKey ID和AccessKey Secret。将其加入环境变量。
使用

export Ali_Key="<你的AccessKey ID>"
export Ali_Secret="<你的AccessKey Secret>"

如果你使用的是其他域名服务商,环境变量的名字可以在这里找到

申请证书

现在准备工作完成了,让我们开始申请证书
使用:

acme.sh --issue --dns dns_ali -d example.com -d sample.example.com

(截图待补充)

在nginx中完成配置

签发下来的证书默认存放在acme.sh的安装目录。你可以根据自己的情况进行使用,以nginx为例,官方提供了安装指令:

acme.sh --install-cert -d example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "service nginx force-reload"

自动更新证书

在你使用acme.sh获取证书时,程序就已经自动创建了一个定时任务。你可以使用crontab -l查看。
自动更新acme.png
你可以试着执行第一条指令来验证是否有错误,记得加上--force参数,因为刚申请完默认不会重复申请。