环境
Ubuntu 24.04、Cloudflare、Nginx
步骤
-
切换到root用户
sudo su -
这并不是必须的,只是我的证书放置在/etc/nginx下,需要权限
-
安装acme.sh
wget -O - https://get.acme.sh | sh -s [email protected]
-
重新连接ssh
-
获取Cloudflare令牌
- 打开 https://dash.cloudflare.com/profile/api-tokens
- 创建一个令牌,可以直接使用区域DNS模板
- 复制令牌,eg: Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs
- 执行
export CF_Token="Y_jpG9AnfQmuX5Ss9M_qaNab6SQwme3HWXNDzRWs"
-
获取Cloudflare账户
- 打开 https://dash.cloudflare.com
- 复制url中在
https://dash.cloudflare.com/
以及/home/domains
之间的值,eg: 763eac4f1bcebd8b5c95e9fc50d010b4 - 执行
export CF_Account_ID="763eac4f1bcebd8b5c95e9fc50d010b4"
-
执行
acme.sh --issue --dns dns_cf -d sakurasou.io -d *.sakurasou.io
这将会签发一张泛域名证书
-
部署到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;
-
查看acme.sh配置 & 部署的证书信息
acme.sh --info
acme.sh --info -d sakurasou.io
参考: