可选用以下两种方式:

  1. 添加计划任务,任务类型为Shell 脚本,每周执行一次。

  2. 申请证书之后执行脚本。

#!/bin/bash

# 定义所需参数,修改此处参数
cert_file="{pem证书文件路径}"
key_file="{pem私钥文件路径}"
cert_id="{雨云已有证书ID}"
api_key="{apiKey}"

# 下方命令无需修改
# 替换换行符为\n
cert_content=$(sed ':a;N;$!ba;s/\n/\\n/g' $cert_file)
key_content=$(sed ':a;N;$!ba;s/\n/\\n/g'  $key_file)

# 设置URL
URL="https://api.v2.rainyun.com/product/sslcenter/$cert_id"

# 设置JSON数据
DATA="{\"Cert\": \"$cert_content\",\"Key\": \"$key_content\"}"

echo -d "------------------------------------------------------------------------------------------------------------------------------------------------"
echo -d "$DATA"
echo -d "------------------------------------------------------------------------------------------------------------------------------------------------"
 
# 发起PUT请求,传递JSON数据,并获取返回值
RESPONSE=$(curl -s -X PUT -H "Content-Type: application/json" -H "x-api-key: $api_key" -H "rain-dev-token: $api_key" -H "User-Agent: Apifox/1.0.0 (https://apifox.com)" -d "$DATA" $URL)
 
# 打印返回值
echo $RESPONSE
  • {pem证书文件路径}:1panel申请证书的推送目录下fullchain.pem文件的全路径,若选择在申请证书之后执行脚本方式,则可以使用相对路径./fullchain.pem

  • {pem私钥文件路径}:1panel申请证书的推送目录下privkey.pem文件的全路径,若选择在申请证书之后执行脚本方式,则可以使用相对路径./privkey.pem

  • {雨云已有证书ID}雨云-SSL证书中心-我的证书,找到需要自动提交更新的证书ID,若没有证书,需要先添加一个证书;

  • {apiKey}:在账户设置中获取API密钥,目前rain-dev-token并无实际意义,也可以传输任意字符;