前言
本文转自:通过python脚本实现自动更新腾讯云CDN数字证书功能
这个脚本找到有两个星期了,但是因为期末很忙,所以都没用过。
今天想用自己的网盘的时候才发现证书过期了,准备更换的时候,才想起这个脚本,顺便水一篇文章分享给大家
使用前准备
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日,咕咕咕,咕咕咕。(成功把一篇文章咕了一年