你得先获取新证书的有效时间 NEW_EXPIRY_TIMESTAMP 与 CERT_NAME 这两个字段是变量
NEW_EXPIRY_TIMESTAMP:时间戳格式的证书到期时间,可以通过openssl获取
CERT_NAME:证书名称,上传飞牛证书时候的名称
# 获取新证书的到期日期并更新数据库中的证书有效期
NEW_EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$CERT_PATH/$CERT_NAME.crt" | sed "s/^.*=\(.*\)$/\1/")
NEW_EXPIRY_TIMESTAMP=$(date -d "$NEW_EXPIRY_DATE" +%s%3N) # 获取毫秒级时间戳
echo "新证书的有效期到: $NEW_EXPIRY_DATE"
# 更新数据库中的证书有效期
echo "更新数据库中的证书有效期..."
psql -U postgres -d trim_connect -c "UPDATE cert SET valid_to=$NEW_EXPIRY_TIMESTAMP WHERE domain='$CERT_NAME'"
其实你可以查一下数据库,看一下数据库结构,大概就能明白了
sudo psql -U postgres -d trim_connect -c "select * from cert"
cert表中有你上传的证书信息,valid_to就是到期时间,domain就是你的证书名称, update就是更新数据,更新证书等于你域名的那条数据,更改valid_to为你新证书的到期时间 |