之前写过如何用acme申请域名证书. 申请单个域名证书很方便和快速, 但是很多时候要在一个服务器上部署多个服务, 比如聊天, 短链接, 博客等等. 为每一个服务申请一个子域名证书是很麻烦的, 也不方便管理, 而一个泛域名证书就可以被子域名重复使用, 方便很多. 实际上泛域名证书申请也没有比单个麻烦多少, 申请成功后就一劳永逸了.

安装和配置acme

首先还是安装acme.

curl https://get.acme.sh | sh
ln -s  /root/.acme.sh/acme.sh /usr/local/bin/acme.sh

默认机构是ZeroSS, 想要切换可以用下面的命令.

# 机构换成Buypass
acme.sh --set-default-ca --server buypass
# 或LetsEncrypt
acme.sh --set-default-ca --server letsencrypt

然后注册一下.

acme.sh --register-account -m [email protected]

导入域名API

顶级域名的申请需要用到域名的API, 这里用cloudflare做例子.

首先进入CloudFlare的My Profile页面, 点击API Tokens, 然后点击Create Token.



然后点击Edit zone DNSUse template.



然后只需要修改Zone ResourcesSpecific Zone, 选择你要申请的域名就好. 选择后点击Continue to summary.



然后点Create Token即可. 接下来页面就会显示你的Token, 记得保存, 关掉之后就没了.

开始申请

接下来进入VPS, 填入相关的信息.

export CF_Token="Your API Token"
export CF_Account_ID=""
export CF_Zone_ID=""
export CF_Email="[email protected]"

第一个填上一步申请的Token, 而CF_Account_IDCF_Zone_ID在CloudFlare中点击域名就可以在右下角看到了. 邮箱就填写你的CloudFlare邮箱.



需要的信息设置好后就可以开始申请了.

acme.sh --issue --dns dns_cf -d yourdomain.com -d *.yourdomain.com -k ec-256

申请结束后安装在你想要的目录就行.

acme.sh --install-cert -d yourdomain.com -d *.yourdomain.com --ecc \
--key-file       file_dir/server.key \
--fullchain-file file_dir/server.crt \
--reloadcmd      "systemctl force-reload nginx"

自动更新

域名会自动更新, 所以不需要额外操作. 下面命令可以让acme自动更新.

acme.sh --upgrade --auto-upgrade

一些其他命令

手动检查证书是否过期, 会自动跳过没有过期的证书.

acme.sh --cron

Tags: none

Leave a comment...