简介
由于服务器放置在阿里云托管。在加上自己的网站访问流量较少。购买阿里云全站加速CDN据听书很爽。100G一年20块钱也足够用了。由于证书是Let's Encrypt 证书有效期只有三个月。自己有的时候忘记替换了也是一件麻烦事。看了阿里云的接口打算写个脚本搞定。
开通全站加速
这里选择的是按流量当然选错也没关系可以更改。
找到域名管理添加域名,这里有几点提示,如果选择HTTPS的话尽量把端口可以直接执行443 由于我们买的100g流量是大陆的 所以这里尽量选择大陆,要不然其他地方的扣费可以让你摸不着头脑。
配置中忘记截图了这里是配置完成后的截图,等待状态为正常运行进行配置。
首先配置CNAME,进入dns解析 修改或者添加域名
接下来就是重点配置证书。
自动化配置证书
代码比较简单,先丢出来代码吧。这里使用的是python 系统自带的python2
创建文件 vim /var/lib/auto-certbot/auto_cdn.py
#!/usr/bin/env python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcdn.request.v20180510.SetDomainServerCertificateRequest import SetDomainServerCertificateRequest
ALY_KEY="LTAIgCFYjef3Bxwq"
ALY_TOKEN="axwNwpYMsv0JC5RXiHF7Xo9Sux1hcm"
D_NAME=".nehza.com" # 域名名称
C_NANE="*.nehza.com" # 证书名称
# 证书位置。
fullchain_str = open('/etc/letsencrypt/live/nehza.com/fullchain.pem').read()
client = AcsClient(ALY_KEY, ALY_TOKEN, 'cn-qingdao')
request = SetDomainServerCertificateRequest()
request.set_accept_format('json')
request.set_DomainName(D_NAME)
request.set_ServerCertificateStatus("on")
request.set_CertName(C_NANE)
request.set_CertType("upload")
request.set_ForceSet("1")
request.set_ServerCertificate(fullchain_str)
response = client.do_action_with_exception(request)
print(response)
在执行代码代码之前先安装依赖。
pip install aliyun-python-sdk-core aliyun-python-sdk-cdn
一切配置完成开始执行
python auto_cdn.py
查看阿里云
到这里基本上是完成了剩下最后一步就是添加到定时任务里面执行完毕就OK了
crontab -e
40 6 */1 * * python /var/lib/auto-certbot/auto_cdn.py