环境

Ubuntu 24.04、Cloudflare、Nginx

步骤

  1. 切换到root用户 sudo su -

    这并不是必须的,只是我的证书放置在/etc/nginx下,需要权限

  2. 安装acme.sh wget -O - https://get.acme.sh | sh -s [email protected]

  3. 重新连接ssh

  4. 获取Cloudflare令牌

    1. 打开 https://dash.cloudflare.com/profile/api-tokens
    2. 创建一个令牌,可以直接使用区域DNS模板
    3. 复制令牌,eg: Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs
    4. 执行 export CF_Token="Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs"
  5. 获取Cloudflare账户

    1. 打开 https://dash.cloudflare.com
    2. 复制url中在https://dash.cloudflare.com/以及/home/domains之间的值,eg: 763eac4f1bcebd8b5c95e9fc50d010b4
    3. 执行 export CF_Account_ID="763eac4f1bcebd8b5c95e9fc50d010b4"
  6. 执行 acme.sh --issue --dns dns_cf -d sakurasou.io -d *.sakurasou.io

    这将会签发一张泛域名证书

  7. 部署到nginx

    acme.sh --install-cert -d sakurasou.io \
        --key-file /etc/nginx/cert/sakurasou.io.key \
        --fullchain-file /etc/nginx/cert/sakurasou.io.crt \
        --reloadcmd "nginx -s reload"
    

    在nginx config的block中这样使用:

    ssl_certificate cert/sakurasou.io.crt;
    ssl_certificate_key cert/sakurasou.io.key;
    
  8. 查看acme.sh配置 & 部署的证书信息

    acme.sh --info
    
    acme.sh --info -d sakurasou.io
    

参考:

  1. acme.sh quickstart
  2. acme.sh dnsapi#1-cloudflare-option

ねぇ,あなたは何色になりたい