免费泛域名证书申请安装及配置
原创2022/11/18大约 2 分钟约 589 字
本教程记录的是通过使用acme.sh申请泛域名证书,安装证书及nginx配置使用证书,并通过配置实现ssl证书自动续期
环境
测试环境: Ubuntu 22.04、nginx
使用到的工具:
acme.sh安装
参考官方中文文档
安装:
curl https://get.acme.sh | sh -s email=my@example.com默认安装到当前用户的home目录下~/.acme.sh/
建议创建一个shell的alias, 例如编辑.bashrc并在底部添加,方便你的使用:
alias acme.sh=~/.acme.sh/acme.sh保存后source ~/.bashrc一下
其他安装方法: https://github.com/Neilpang/acme.sh/wiki/How-to-install
使用DNS api自动申请证书
首先申请对应DNS供应商的DNS API KEY,以下使用namesilo做演示,其他DNS供应商请自行搜索
namesilo网站更新过,网上其他教程的地址还是老地址,老地址配置是不生效的!
添加变量:
export Namesilo_Key="xxxxxx"其他DNS供应商的key添加变量方法:https://github.com/acmesh-official/acme.sh/wiki/dnsapi
生成证书:
acme.sh --issue --dns dns_namesilo --dnssleep 900 -d example.com -d *.example.com建议将900改大为1800,因为namesilo解析比较慢
安装证书
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"其他方式参考文档
如果报错需要安装ecc证书,用如下命令:
acme.sh --install-cert --ecc -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正确安装,可以通过crontab -l命令参看定时任务
crontab -l
24 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null更新acme.sh
目前由于acme协议在频繁的更新, 因此acme.sh也经常更新以保持同步.
升级acme.sh到最新版 :
acme.sh --upgrade如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade之后,acme.sh就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0