感谢博友老麦,手把手的指导我向阿里云CDN自动部署SSL证书;最感谢的不是他手把手的友好,而是他自己不用这套方案,而专门为我琢磨、测试、传授的“利我”精神。
伟人说,“一个人能力有大小,但只要有这点精神,就是一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人”。无疑,老麦就是一个高尚的人、纯粹的人、有道德的人、一个脱离了低级趣味的人。
自动向CDN部署SSL证书
下面简单记录下老麦的自动部署方案,证书自动比对和上传部分代码著作权完全归老麦所有,我仅是借花献佛,以方便有相同需要的同学。
我的服务器环境,阿里云服务器+阿里云CDN+阿里云域名解析+宝塔面板,此次自动部署的关键在于把宝塔面板自动申请的SSL证书上传到阿里云CDN。实行这一方案的原因是免费SSL证书从一年变成三个月,手动上传太麻烦,于是四处找自动方案,老麦知道后主动联系我,帮助实现。下面简单记录下步骤。
一、申请阿里云RAM访问控制权限
1、申请账户
只需要openAPI一个选项,申请完记得保存,关闭后就找不到了。
2、申请权限
按老麦的建议,一个业务申请一个授权,这样业务不用时直接删除授权即可。本次业务涉及域名解析和CDN配置,所以需要以下三个权限。
二、在Linux服务器上安装阿里云CLI
1、root账户下,SSH连接服务器,在服务器上运行下列命令,下载Aliyun CLI
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz tar -zxvf aliyun-cli-linux-latest-amd64.tgz
2、配置Aliyun CLI
运行echo $PATH 命令,确认系统变量值中存在 /usr/local/bin 路径。
执行如下命令,将aliyun程序复制到/usr/local/bin目录中。
sudo cp aliyun /usr/local/bin
如果您是root用户,请移除sudo命令。
3、验证安装结果,执行
aliyun version
如返回版本号则证明安装成功
4、输入
aliyun configure --profile AkProfile
在接下来的窗口输入步骤一申请的账户ID和密码
Default Region Id []: 这个提示框是输入阿里云服务器的地域,用下面网址查,比如cn-beijing
https://help.aliyun.com/zh/ecs/product-overview/regions-and-zones?spm=a2c4g.11186623.0.0.c62f33afrWJkdd#concept-2459516
下面选项输入zh
Default Language [zh|en] en: zh
出现上面画面就是成功了
三、证书自动申请
在宝塔网站管里申请ssl证书
一定要选NAS认证,这样才能自动续签;
宝塔默认的证书保存文件路径为以下,每个域名一个文件夹,这个路径后面要用到;
/www/server/panel/vhost/cert/abc.com/
四、配置自动定时任务
1、在宝塔面板里新建cdnssl.sh文件,在 www目录下新建,新建后复制以下脚本并保存;
#!/bin/bash
# 函数:检测证书文件的变化并上传到阿里云
check_and_upload() {
DOMAIN_NAME=$1 # 域名
CERT_PATH=$2 # 证书路径
PRI_KEY_PATH=$3 # 私钥路径
HASH_FILE=$4 # 用于存储哈希值的文件路径
# 计算当前证书文件的哈希值
CURRENT_HASH=$(sha256sum "$CERT_PATH" | awk '{ print $1 }')
# 读取上次保存的哈希值
if [ -f "$HASH_FILE" ]; then
LAST_HASH=$(cat "$HASH_FILE")
else
LAST_HASH=""
fi
# 比较哈希值
if [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
echo "证书已更新,正在上传到阿里云CDN(域名:$DOMAIN_NAME)..."
# 执行上传命令
/usr/local/bin/aliyun cdn SetCdnDomainSSLCertificate \
--DomainName "$DOMAIN_NAME" \
--SSLPub="$(cat $CERT_PATH)" \
--SSLPri="$(cat $PRI_KEY_PATH)" \
--CertType upload \
--SSLProtocol on
# 上传成功后,保存新的哈希值
echo "$CURRENT_HASH" > "$HASH_FILE"
else
echo "证书未更新(域名:$DOMAIN_NAME),无需上传"
fi
}
# 监控第一个域名 1.abc.com 的证书
DOMAIN1="1.abc.com"
CERT_PATH1="/www/server/panel/vhost/cert/1.abc.com/fullchain.pem"
PRI_KEY_PATH1="/www/server/panel/vhost/cert/1.abc.com/privkey.pem"
HASH_FILE1="/www/cert_hash_1_abc_com.txt"
# 监控第二个域名 2.abc.com 的证书
DOMAIN2="2.abc.com"
CERT_PATH2="/www/server/panel/vhost/cert/2.abc.com/fullchain.pem"
PRI_KEY_PATH2="/www/server/panel/vhost/cert/2.abc.com/privkey.pem"
HASH_FILE2="/www/cert_hash_2_abc_com.txt"
# 检查第一个域名的证书
check_and_upload "$DOMAIN1" "$CERT_PATH1" "$PRI_KEY_PATH1" "$HASH_FILE1"
# 检查第二个域名的证书
check_and_upload "$DOMAIN2" "$CERT_PATH2" "$PRI_KEY_PATH2" "$HASH_FILE2"
2、设置定时任务,SSH连接服务器端,root账户下
chmod +x /www/cdnssl.sh
crontab -e //打开编辑器
shift+g //将光标定位到最后一行
然后按 o (字母,非数字)进行编辑,输入下面命令
0 3 * * * /www/cdnssl.sh >> /www/cdnssl.log 2>&1
按Esc键,输入以下命令,记得是输入,不能复制进去。
:wq
3、然后输入下面两行命令进行测试。
cd /www
再输入
./cdnssl.sh
返回如下画面就证明成功了
4、自动任务触发后
自动任务每天执行一次,执行后www文件夹下会多出来cert_hash_img_savouer_com.txt和cert_hash_www_savouer_com.txt两个文件,还会多出一个cdnssl.log。前两个是记录哈希值的,cdnssl.log是记录定时任务的日志。
以上是关于自动向阿里云CDN部署SSL证书的教程,因为我是小白,所以老麦一步一步的指导的。
obsidian笔记
部署完以上任务,老麦又给我介绍了md文件,于是在他建议下我尝试了obsidian笔记。
之前一直用有道云笔记,之所以选他是因为在用的文石电纸书阅读器支持直接导出读书笔记到有道云。使用过程中感觉有道云也足够我用,基于Ai的功能和学术网站加速器(针对特定网站的梯子)都比较好用。但也有让人不舒服的地方,比如他的md语法和标准的不同,且打不开标准md语法的文件;同时已有笔记也不能导出md格式,只能导出pdf和word两种格式。这就让我很担心,万一笔记越来越多,我是不是越来越离不开有道云笔记了?假如哪天他觉得不赚钱,不做笔记业务了,我的笔记是不是也得跟着消灭了?
尝试obsidian后发现确实很强大,功能按需打插件,这一点和wordpress很像,找回了熟悉的感觉。但目前有道云笔记还有四年的会员,大概率会变成沉没成本了。看来互联网思维中的免费还是要好好学习下,收费的不见得是好的,尤其国内习惯焊车门的应用。
在obsidian中使用了weread插件,可以导出微信读书笔记,以前都是页面版手动复制到笔记软件,现在方便不少。
京东读书和微信读书
最早读书一直用京东读书,原因是书比较全,但京东读书会员只能读有限的书,而其他书还要付费;今年偶然用上了微信读书,发现会员可以读所有书,且笔记导出和有限的社交功能比较方便,于是这半年基本上一直在微信读书。到今天共读了170天,407小时,共读完30本书。会员是每月5元的挑战,年合60元,很便宜了。
前两天看到京东读书宣布会员可读所有书,放弃了二次收费策略,看来竞争还是有用的,要不京东的电纸书和纸质书价格相差无几,会员功能就没有多大意义了。
京东读书宣布会员可免费读所有上架书籍后,顿觉压力山大,这么多书怎么读的完啊!京东读书、微信读书、还有仓鼠症屯的几百G电子书,还有买的纸质书。不由感慨,这个时代读书的成本真是低啊!
文石电子书阅读器
刚感慨完读书的成本低,现实就教育了我。目前正在使用的文石阅读器大概两年前购买,共使用它阅读了约1600个小时,但现在它开始出现掉电快的问题,有时甚至会在40%左右电量时自动关机,再打开就是剩余1%电量。很明显这是电池坏了,2年,1600小时,电池就坏了,不由得出“电池真垃圾”的结论。电纸书使用电流很小,这对电池很友好,且它充电时也是慢充,按这种工况,他的电池怎么也应该使用500-800次循环。实际使用中我不开背光、不开wifi,只用来看文字,基本上10天左右一充,就算一年充50次,那它的电池起码应该用10年,但现在两年它就坏了。网上看出现同样问题的人很多,可见它采购的电池真垃圾。
对比以前的kindle,到现在快10年了,电池依然没有故障。由此感叹,小众产品真不好买,因为市场小,大厂看不上,而小厂都会有各种各样的问题,让你用的不安生。
这个阅读器2600元入手,到现在只用了1600小时,如果官方换一个块电池(据网上说100元),再用1600小时,然后报废,那等于2700元用3200小时,每小时合0.84元,其实也不便宜。但如果按都书量来算,则很便宜了,我大概5-7小时读一本300页的书,这样大概5元钱的成本就能读一本书,而买纸书每本需要30元,相比还是很便宜的(抛开纸书可以多人反复读的问题)。
最后再次感谢下老麦,让我也与时俱进,乘上了自动化的便车。





37 条评论