使用acme申请aliyun平台的AccessKey,申请免费泛域名证书

申请阿里云的AccessKey

登陆,进入AccessKey管理

登陆阿里云账户,进入控制台

鼠标移动到 右上角,你的头像上,出现的下拉菜单里找到 AccessKey管理

找到AccessKey管理

找不到的也可以 点击这里直达

安全提示

如果你是第一次使用 AccessKey管理 , 会有安全提示

安全提示

如果使用主账户创建AccessKey,将拥有该账户的全部权限

所以安全起见,推荐创建一个子账户进行后续操作

如果选 开始使用子账户AccessKey,进入 子账户创建 步骤

子账户创建

如果刚刚选了继续使用AccessKey,可以跳过次步

体验新版

确定

找到快速入口

创建用户

创建用户

如果,填写登录名、显示名称、勾选编程访问,点击确定,(可能需要短信验证,这里就不截图了)

创建子账户完成,会显示AccessKey IDAccessKey Secret,注意:只会显示一次,如果没保存,可以在用户管理里删除并重新创建AccessKey

找到授权

点击授权

找到新增授权

点击新增授权

新增授权

被授权主题里搜索刚刚添加的用户名(cer)找到后点击

系统策略里搜索'dns',下面出现多个相关结果后,点击AliyunDNSFullAccess,确定

子账户授权完成

主账户创建AccessKey

如果使用了子账户的方式,请跳过本步

点击创建AccessKey

创建AccessKey

显示AccessKey

点击可以看见AccessKey IDAccessKey Secret,也可以点保存AK信息下载下来,注意:只会显示一次,如果没保存,可以删除后重新创建

安装acme

apt update -y && apt install  -y curl cron socat
curl https://get.acme.sh | sh

将会安装到用户目录下的.acme

配置AccessKey ID和AccessKey Secret

export Ali_Key="刚刚的AccessKey ID"
export Ali_Secret="刚刚的AccessKey Secret"

使用acme申请证书

~/.acme.sh/acme.sh --issue --dns dns_ali -d lmzg.com -d *.lmzg.com

--dns dns_ali是指使用阿里云的dns验证

-d lmzg.com是需要申请证书的域名,可以有多个-d,可以使用泛域名

大约需要2分钟

Nginx配置证书

这里以刚刚申请的lmzg.com的证书为例,请注意实际路径

server {
    listen              443 ssl;
    server_name         www.lmzg.com lmzg.com;
    root                /wwwroot/lmzg/wwwlmzgcom;
    ssl                 on;
    ssl_certificate     /root/.acme.sh/lmzg.com/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/lmzg.com/lmzg.com.key;
    # 省略了其他配置
}

需要注意,ssl_certificate需要指定为fullchain.cer而不是lmzg.com.cer

自动续期

在前面的安装.acme步骤中,已经设置了定时续期,使用crontab -l 查看

11   0    *    *    * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12)
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

为了配合证书生效,需要重载Nginx才行,所以添加一个定时重载Nginx

进行crontab编辑 crontab -e

4 15 20 * * /usr/sbin/service nginx reload  > /dev/null

意思是每月20154分,将会重载一次Nginx,因为证书申请在19号,每月20日下午重载一次刚刚好,如果你懒得想那么多,每天执行一次就好了

36 3 * * * /usr/sbin/service nginx reload  > /dev/null

每天凌晨336分重载一次

关于阿里云的acme泛域名申请到此结束

tips: 如果有CDN,还需要将证书推送到CDN服务器上,这个也可以用阿里云的接口实现自动化


本文来源:https://www.jeay.net/server/acme-aliyun-cer.html
转载请注明。

你可能感兴趣的:(使用acme申请aliyun平台的AccessKey,申请免费泛域名证书)