使用 acme.sh 生成证书
说明
安装 acme.sh
以下是使用
root
用户执行,使用CentOS为例安装(使用镜像仓库)
bash# git clone https://framagit.org/xuxiaowei-com-cn/acme.sh.git git clone https://gitee.com/neilpang/acme.sh.git cd acme.sh # 换成自己的邮箱,便于接收邮件 ./acme.sh --install -m my@example.com ./acme.sh --register-account -m my@example.com
我这里选择了 DNS 验证,我个人感觉比较方便:
先找到你的厂商 API 点进去 点我跳转,这里以阿里云为🌰:
将他们的 key、secret 设置为环境变量
bashexport Ali_Key="xxx" export Ali_Secret="xxx"
生成证书(这里的
example.com
改成你自己的域名即可)bash./acme.sh --issue --dns dns_ali -d xiaojingge.com -d *.xiaojingge.com
在此期间等待执行就好了,可能会一点时间,因为还要等待证书生效。
复制证书
我这边是
nginx
所以使用官方命令nginx
示例就行(由于我的nginx
使用docker
安装,则后面的重启命令改为docker restart nginx容器名称/容器id
即可),命令如下:
bash
./acme.sh --install-cert -d xiaojingge.com \
--key-file /ssl/server.key \
--fullchain-file /ssl/server.crt \
--reloadcmd "docker restart nginx"
这里说明下:
reloadcmd
非常重要。证书会自动申请续签,但是如果没有正确的reloadcmd
命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。
修改完记得重启 nginx 哦。
(扩展📜)更新证书
目前证书每 60 天自动更新,你无需任何操作。
但是你也可以强制续签证书:
bash
acme.sh --renew -d example.com --force