免费泛域名证书申请安装及配置
原创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