自动证书管理环境(英语:Automatic Certificate Management Environment,缩写 ACME)是一种通信协议,用于证书颁发机构与其用户的 Web
服务器之间的自动化交互,允许以极低成本自动化部署公钥基础设施。我们可以使用ACME
为我们的网站签发证书。
由于ACME签发证书有效期仅有90天,生产环境慎用。
环境
操作系统:CentOS 7
域名解析:阿里云DNS解析服务
安装ACME
安装 acme
,邮箱根据实际情况进行修改。
1
|
wget -O - https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m my@example.com
|
更详细的安装过程请参考官方教程。
查看acme
版本
1
2
3
4
|
cd ~/.acme.sh/
./acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.0.7
|
安装完成后会生成crontab
定时任务,以检查证实是否过期,是否需要续签等。这个定时任务的时间是随机的,不影响主要功能。
1
2
|
crontab -l
30 19 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
|
阿里云
阿里云创建子账户,创建成功后,记录用户的AccessKey ID
和AccessKey Secret
。
针对用户授权,具体权限如下图。
配置ACME并签发证书
修改 ~/.acme.sh/dnsapi/dns_ali.sh
文件,修改 Ali_Key
及 Ali_Secret
1
2
3
4
5
6
7
|
[root@blog ~]# head -6 ~/.acme.sh/dnsapi/dns_ali.sh
#!/bin/bash
Ali_API="https://alidns.aliyuncs.com/"
Ali_Key="LTAI5tCQ7D7C4WRBp5HLv2MW"
Ali_Secret="71PC9hCNw8Cc0ThKwGSe7OJ6BQgT0F"
|
签发证书
1
|
./acme.sh --issue --dns dns_ali -d snoopyops.top -d *.snoopyops.top
|
签发成功后,会在~/.acme.sh/
下生产域名目录。
验证
配置证书,并重载 nginx
1
2
3
4
5
6
|
cp /root/.acme.sh/snoopyops.top_ecc/snoopyops.top.cer /etc/nginx/cert/
cp /root/.acme.sh/snoopyops.top_ecc/snoopyops.top.key /etc/nginx/cert/
# nginx配置
ssl_certificate /etc/nginx/cert/snoopyops.top.cer;
ssl_certificate_key /etc/nginx/cert/snoopyops.top.key;
|
验证证书