手动生成 SSL 证书添加到又拍云

本站一直用又拍云进行 CDN 加速,因为又拍云有一个又拍云联盟的活动,博主只需要在网站放一个 LOGO 即可获取一定的免费额度。唯一的问题就是需要每年重新申请一下这个又拍云的活动。

又拍云还提供 SSL 证书申请与管理,可以一站式管理 HTTPS 的问题。之前一直用他家的 TrustAsia DV SSL 单域名证书,还可以自动续签。然而今年到期后开始收费了,只能转向免费的 Let's Encrypt. 但不知道又拍云还是 Let's Encrypt 这里抽什么风,重复申请好几次都还是失败,提工单来来回回咨询了很多次都没有结果,最后跟我说的厂商 Let's Encrypt 给我限制了。。。

没办法,而且我的旧证书马上就要过期了,只能自动动手,丰衣足食。又拍云支持上传自己的证书,干脆我自己去 Let's Encrypt 申请一个证书上传上去。

我用的是 acme.sh 进行的申请,使用起来也很简单。

  1. 安装 acme.sh

    1. curl https://get.acme.sh | sh -s email=my@example.com
    2. 安装后默认会搞一个每天 0 点运行的 crontab 自动更新过期证书
  2. 我这里用的是 dns 验证域名所有权的方式.

    1. 生成 dns 验证相关的 dns 配置,生成后需要添加 dns 解析。
      1. acme.sh --issue --dns -d scottyeung.top --yes-I-know-dns-manual-mode-enough-go-ahead-please
    2. 添加 dns 解析后,生成证书。
      1. acme.sh --renew -d scottyeung.top --yes-I-know-dns-manual-mode-enough-go-ahead-please
  3. 最终生成的证书和私钥放在 ~/.acme.sh/scottyeung.top_ecc

    1. 证书:fullchain.cer
    2. 私钥:scottyeung.top.key

生成之后把证书和私钥上传到又拍云就可以。唯一的缺点是有效期比较短,只有 90 天,需要 60 天后更新,到时再看看能不能自动化更新。