介绍

利用 acme.sh 快速申请 SSL 证书,用于启用 https

这里使用 Cloudflare 提供的 API 来完成域名验证

GitHub 项目地址中文说明:acme.sh 说明

使用 API 申请完成域名验证:如何使用 DNS API

使用

1、安装 acme.sh

email 换成自己的邮箱(证书到期可以收到邮件提醒)

1
curl  https://get.acme.sh | sh -s email=my@example.com && source ~/.bashrc

2、查看 API Key

这里我的域名托管在 Cloudflare ,所以使用 Cloudflare 来完成验证,其它的如 DNSPod.cn 等自行查看官方文档:如何使用 DNS API

进入以下网址:https://dash.cloudflare.com/profile/api-tokens

查看 Global API Key

3、配置

导入,CF_Key 填写上面申请的 Global API KeyCF_Email 填写自己的 Cloudflare 账号邮箱

1
2
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"

4、生成证书

-d 后面填写需要申请证书的域名

1
acme.sh --issue --dns dns_cf -d example.com

可以接多个 -d ,比如

1
acme.sh --issue --dns dns_cf -d example.com -d www.example.com

5、安装证书

证书申请下来以后,安装到 Nginx 配置文件中指定的位置

  • -d 后面接自己申请证书的域名
  • --key-file key 文件需要放置的绝对路径
  • --fullchain-file 证书文件的绝对路径
  • --reloadcmd 看自己情况修改,这个命令是当证书更新以后,Nginx 会重新加载证书
1
2
3
4
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"

其它

1、查看已安装证书信息

-d 后面接申请证书的域名

1
acme.sh --info -d example.com

2、查看更新证书的定时任务

1
crontab  -l

3、更新 acme.sh

升级 acme.sh 到最新版

1
acme.sh --upgrade

如果你不想手动升级,可以开启自动升级:

1
acme.sh  --upgrade  --auto-upgrade

关闭自动更新

1
acme.sh --upgrade  --auto-upgrade  0

4、卸载 acme.sh

1
acme.sh --uninstall