NiceLeeのBlog 用爱发电 bilibili~

备忘录 自动化申请证书并部署到Gcore

2024-12-17
nIceLee

阅读:


Gcore CDN在边缘服务器上部署的证书是单/多域名的,这对应于你在CDN部署的域名。
但是有时候,我并不想让别人知道某些域名的具体情况,这时候只能自己申请通配符证书,然后替换了。
既然如此,那么好像也没必要用自签名的证书了,在源端自动化申请部署一条龙服务。

如何更新Gcore SSL证书

先人工建立证书,记录id,假设为114514
获取API token,假设为123$foobar
获取证书,假设位置为/usr/workspace/ssl/123456.xyz.pem/usr/workspace/ssl/123456.xyz.key

cur_date=$(date +"%Y-%m-%d %H:%M")
certificate=$(awk '{printf "%s\\n", $0}' /usr/workspace/ssl/123456.xyz.pem)
private_key=$(awk '{printf "%s\\n", $0}' /usr/workspace/ssl/123456.xyz.key)
curl -H 'Authorization: APIKey 123$foobar' \
     -H "Accept: application/json" -H "Content-type: application/json" -X PUT \
     -d "{\"name\": \"*.123456.xyz-$cur_date\",\"sslCertificate\": \"$certificate\",\"sslPrivateKey\": \"$private_key\", \"validate_root_ca\": true}" \
     https://api.gcore.com/cdn/sslData/114514

使用acme.sh申请证书并上传到Gcore

  • 安装acme.sh
    只需要安装一次。
    curl https://get.acme.sh | sh -s email=my@123456.xyz
    
  • 申请证书
    只需要配置一次,默认会周期更新。
    如果DNS部署在其它地方,参考dnsapi2自行修改。
    export GCORE_Key='123$foobar'
    /root/.acme.sh/acme.sh --issue --dns dns_gcore -d 123456.xyz -d *.123456.xyz
    # 如果出现错误,可以加参数--debug
    
  • 将证书部署到本地的nginx并deploy到Gcore
    只需要配置一次。
    /root/.acme.sh/acme.sh --install-cert --dns dns_gcore -d 123456.xyz -d *.123456.xyz \
      --cert-file /usr/workspace/ssl/123456.xyz.only.pem \
      --key-file /usr/workspace/ssl/123456.xyz.key \
      --fullchain-file /usr/workspace/ssl/123456.xyz.pem \
      --reloadcmd "nginx -s reload && /usr/workspace/acme/gcore.sh"
    
  • 设置通知
    参考https://github.com/acmesh-official/acme.sh/wiki/notify

相似文章

内容
隐藏