前言
这个脚本找到有两个星期了,但是因为期末很忙,所以都没用过。
今天想用自己的网盘的时候才发现证书过期了,准备更换的时候,才想起这个脚本,顺便水一篇文章分享给大家
使用前准备
1.在腾讯云CDN后台创建相关域名
(略)不会创建还用这个脚本干嘛啊(逃
2.获取腾讯云SecretId和SecretKey
3.安装Python3以及相关依赖
Centos系统:
#安装Python3(此脚本不会覆盖Python2,与python2共存)
wget -qO- dl.few.gs/scripts/python3.sh | bash
#安装依赖
pip3 install cryptography qcloudapi-sdk-python
Windows、Debian、Ubuntu及其他系统:
#安装Python3
自行想办法()
#安装依赖(使用python3的pip)
pip install cryptography qcloudapi-sdk-python
4.下载证书更新主脚本和配置范例文件
wget https://gitlab.ngx.hk/cloud_tencent/CDN/raw/master/qcloud_cdn_cert_update/main.py
wget https://gitlab.ngx.hk/cloud_tencent/CDN/raw/master/qcloud_cdn_cert_update/config.template.json
5.修改配置范例文件
5.1 修改脚本main.py
# 配置文件目录
# 默认为脚本当前所在目录下的config.json
config_file_path = sys.path[0] + '/config.json'
# 临时文件目录
# 同上
tmp_file_path = sys.path[0] + '/temp.log'
# 证书文件目录
# 默认为脚本当前所在目录下的cert目录
cert_file_folder = sys.path[0] + '/cert/'
主要修改的是第三个,证书文件目录。具体如何修改,在5.4中举例说明
5.2 修改配置范例文件名
mv config.template.json config.json
5.3 修改配置
https_type:https种类,值为2表示上传自有证书,并协议跟随回源(不用改)
https_force_switch:https强制跳转,值0表示无强制跳转,值1表示强制跳转至http,值2表示强制跳转至https(服务器上配置了强制跳转的,这里请填0)
http2:http2是否开启,填”on”以加快网页二次加载速度
secret_id:上面得到的
secret_key:上面得到的
cert_filename:证书文件名
key_filename:证书密钥文件名
validity:证书最小有效期(填0稳妥)
5.4 举个栗子
下面,我们来举个栗子:
此次使用的证书是由acme.sh生成并负责自动更新的,要更换证书的域名为example.com
一般情况下,acme.sh生成证书文件命名为fullchain.crt,证书的密钥文件命名为example.com.key,这两个文件存放在/root/.acme.sh/example.com/目录下
修改main.py中的证书文件目录为:
/root/.acme.sh/
修改config.json配置文件为:
{
"example.com": {
"https_type": 2,
"https_force_switch": 0,
"http2": "on",
"secret_id": "xxx",
"secret_key": "xxx",
"cert_filename": "example.com/fullchain.crt",
"key_filename": "example.com/example.com.key",
"validity": "0"
}
}
也就是说,实际脚本读取的证书文件名是由main.py中的证书文件目录与config.json中的xxxx_filename两项拼接而成的
如无意外,修改好以后就可以直接运行脚本替换腾讯云CDN证书了
python3 main.py
最后
本文开始写于12月29日,写作完成于1月5日,咕咕咕,咕咕咕。(成功把一篇文章咕了一年