php script for update qiniu https ssl cert
使用qiniu php sdk 和let's encrypt配合,完成七牛的ssl证书的更新。
随着https的普及,为了支持云存储的ssl cert更新和免费ssl证书的使用。
因为七牛支持使用自由证书,那么配合let's encrypt的免费证书,则可以免费更新七牛的https
但是let's encrypt的证书有效期为3个月,需要定期更新。
所以写了个脚本“半自动”的形式更新七牛证书。
全自动的模式,请参看下面“dns支持”。
生成证书并上传/更新七牛
let's encrypt生成证书需要域名指向“当前正在操作的”服务器。可以使用dnspod等域名服务器的api去自动切换域名指向自有服务器和七牛云服务器。
这样才可以使用crontab定期执行,证书生成会失败
最新版本,已经增加百度bcd域名服务的api去切换域名指向,达到自动修改证书的动作。
详细参看“meiriyouke.updateonly-changeDNS.sh” 这个脚本可以加到crontab中。
备注:
1/ 需要baidu云的ak和sk,以及更新下您想修改的域名.详见bce-node/bcdclient2n.meiriyouke.cn.js 和bce-node/bcdclient2qiniu.js中中文备注的需要替换的字段内容。
2/ 由于使用了node,请安装node环境。我自己测试的是node v12.x
1/ qiniusslupdate.sh : 执行脚本。包含了证书和调用todoDomainUpdateSslcertScript.php
2/ todoDomainUpdateSslcertScript.php:上传到七牛并更新
修改qiniusslupdate.sh的七牛AK和SK
./qiniusslupdate.sh {domain}
比如:./qiniusslupdate.sh abcssl.abc.com
执行前,先把域名指向操作服务器。
执行完成后,再把域名指向七牛
1/上面两个关键文件中,证书的位置,是按照let's encrypt默认生成路径。如果用其他方式得到证书,则自己修改路径。
2/ 如果是crebot renew,则改下qiniusslupdate.sh文件中生成证书的命令,去掉crebot renew前的#符号
3/ 如果要定期执行,则自行加入crontab
php
php-curl
nginx
cerbot (let's encrypt)