由于现在各家厂商https证书开始缩紧,原来一年有效期的证书 现在都是3个月有效期了
故此,自动续签证书刻不容缓,找到已有解决方案是 acme.sh
使用官方提供的命令
curl https://get.acme.sh | sh -s [email protected]
首先这个是外网地址,很慢,故可以挂一个代理
curl --proxy http://username:[email protected]:7888 -k https://get.acme.sh | sh -s [email protected]
虽然脚本下载下来了,但是只是下载了安装脚本
安装脚本里面会再下脚本,资源在github上,访问有问题
其实可能改安装脚本 再加代理,但是不能保证里面是不是还有外网地址
故就把curl设置全局代理
在用户根目录下创建.curlrc
写入内容
proxy = http://username:[email protected]:7888
再执行脚本就能快速安装了
crontab -l
如果有添加计划任务执行的脚本是 acme.sh 则计划任务添加完成
使用 echo $0
查看当前的终端,在更目录下找到终端.rc
如 ~/.bashrc
打开,并在末尾追加
alias acme.sh='~/.acme.sh/acme.sh'
acme.sh --set-default-ca --server letsencrypt
acme.sh --issue -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/ --nginx --server letsencrypt
--issue 是输出报错
-d 是domain的配置
--webroot 配置站点根目录,签发证书需要验证站点所有权
--nginx 指定服务器为nginx
--server 指定ca服务器
签发完成后会在 acme文件夹下看到对于域名的文件夹和证书
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 "nginx -s reload"
sudo nginx -s reload
在**.bashrc**中追加
export DINGTALK_WEBHOOK='https://oapi.dingtalk.com/robot/send?access_token=b05ccexxxxx'
// 钉钉机器人关键字
export DINGTALK_KEYWORD=acme
配置完成 需要 source ~/.bashrc
--notify-level 0|1|2|3 设置通知级别:默认值是 2。
0: 禁用,不会发送任何通知。
1: 仅在出现错误时发送通知。没有消息就是好消息。
2: 当证书成功续期或出现错误时发送通知。
3: 当证书被跳过、续期或出现错误时发送通知。使用此级别,您将每晚收到通知。
--notify-mode 0|1 设置通知模式。默认值是 0。
0: 批量模式。将所有域名的通知合并在一条消息(邮件)中发送。
1: 证书模式。为每个单独的证书发送一条消息。在一晚上您可能会收到大量邮件。
--notify-hook [hookname] 设置通知钩子
--notify-source 设置通知消息中的服务器名称
acme.sh --set-notify --notify-hook dingtalk
如果成功就是正常输出成功