申请阿里云的AccessKey
登陆,进入AccessKey管理
登陆阿里云账户,进入控制台
鼠标移动到 右上角,你的头像上,出现的下拉菜单里找到 AccessKey管理
找不到的也可以 点击这里直达
安全提示
如果你是第一次使用 AccessKey管理 , 会有安全提示
如果使用主账户创建AccessKey,将拥有该账户的全部权限
所以安全起见,推荐创建一个子账户进行后续操作
如果选 开始使用子账户AccessKey,进入 子账户创建 步骤
子账户创建
如果刚刚选了继续使用AccessKey,可以跳过次步
选 确定
选 创建用户
如果,填写登录名、显示名称、勾选编程访问,点击确定,(可能需要短信验证,这里就不截图了)
创建子账户完成,会显示AccessKey ID
和AccessKey Secret
,注意:只会显示一次,如果没保存,可以在用户管理里删除并重新创建AccessKey
点击授权
点击新增授权
被授权主题里搜索刚刚添加的用户名(cer)找到后点击
系统策略里搜索'dns',下面出现多个相关结果后,点击AliyunDNSFullAccess
,确定
子账户授权完成
主账户创建AccessKey
如果使用了子账户的方式,请跳过本步
创建AccessKey
点击可以看见AccessKey ID
和AccessKey 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
意思是每月20
日15
时4
分,将会重载一次Nginx,因为证书申请在19号,每月20日下午重载一次刚刚好,如果你懒得想那么多,每天执行一次就好了
36 3 * * * /usr/sbin/service nginx reload > /dev/null
每天凌晨3
时36
分重载一次
关于阿里云的acme泛域名申请到此结束
tips: 如果有CDN,还需要将证书推送到CDN服务器上,这个也可以用阿里云的接口实现自动化
本文来源:https://www.jeay.net/server/acme-aliyun-cer.html
转载请注明。