rancher每隔一年证书会到期,如何自动化处理证书到期的问题呢?
cd ..Smartbi_All/rancher_data/management-state/tls //到证书目录openssl x509 -enddate -noout -in localhost.crt //查看到期时间mv localhost.crt localhost.crt_bakmv localhost.key localhost.key_bakmv token-node.crt token-node.crt_bakmv token-node.key token-node.key_bakdocker restart smartbi-rancher //重启rancher容器,他会自动续签证书
使用脚本配置系统定时计划任务,让系统自动执行更新证书,在证书到期前2天处理,脚本如下:
#!/bin/bash#create by chenzm , 2022-06-09 ,969113439@qq.comSMARTBI_RANCHER_HOME=/data/soft/Smartbi_AllCurrentDay=`date ‘+%Y-%m-%d’`SMARTBI_RANCHER_TLS_HOME=$SMARTBI_RANCHER_HOME/rancher_data/management-state/tlsCRTTIME=`openssl x509 -enddate -noout -in ${SMARTBI_RANCHER_TLS_HOME}/localhost.crt | awk -F’=’ ‘{print$2}’ | awk ‘{print $1,$2,$3,$4}’`NOWTIME=`date +%F” “%T`#将证书到期时间转换为秒CRTTIMETOS=`date -d “${CRTTIME}” +%s`#将NOWTIME时间也就是系统当前时间转换为秒NOWTIMETOS=`date -d “${NOWTIME}” +%s`MINUSTIME=$((CRTTIMETOS-NOWTIMETOS))echo ${MINUSTIME}#2天=172800秒,在到期前2天处理证书到期if [ ${MINUSTIME} -lt 172800 ];then echo “证书时间:${CRTTIME} , 当系统时间:${NOWTIME} , 到期时间> /opt/update_rancher_tls.log mv $SMARTBI_RANCHER_TLS_HOME/localhost.crt $SMARTBI_RANCHER_TLS_HOME/localhost.crt_$CurrentDay mv $SMARTBI_RANCHER_TLS_HOME/localhost.key $SMARTBI_RANCHER_TLS_HOME/localhost.key_$CurrentDay mv $SMARTBI_RANCHER_TLS_HOME/token-node.crt $SMARTBI_RANCHER_TLS_HOME/token-node.crt_$CurrentDay mv $SMARTBI_RANCHER_TLS_HOME/token-node.key $SMARTBI_RANCHER_TLS_HOME/token-node.key_$CurrentDay docker restart smartbi-rancher else echo “证书时间:${CRTTIME} , 当系统时间:${NOWTIME} , 到期时间>2天” >> /opt/update_rancher_tls.logfi
编辑定时任务,比如每天晚上11点执行任务:
0 23 * * * /bin/bash /opt/update_rancher_tls.sh &> /dev/null
打印出的时间日志:
# cat update_rancher_tls.log 证书时间:Jun 8 06:58:13 2023 , 当系统时间:2022-06-09 15:19:10 , 到期时间>2天
大家在写脚本的时候,建议所有脚本功能,要有日志输出,方便问题跟踪。