执行如下的脚本(在macOS上,此脚本必须要处在大小写敏感的文件系统上才可以运行)
#! /bin/bash
DOMAIN_NAME="*.example.com" # 需要申请ssl证书的域名
EMAIL="example@example.com" # CloudFlare账户的邮箱
APIKEY="xxxx" # CloudFlare账户的Global API Key
mkdir ./get-ssl
cd get-ssl
mkdir secrets
mkdir etc
cat <<EOF | tee secrets/cloudflare.ini
# Cloudflare API credentials used by Certbot
dns_cloudflare_email = $EMAIL
dns_cloudflare_api_key = $APIKEY
EOF
docker run -it --rm --name certbot \
-v ./etc:/etc/letsencrypt \
-v ./secrets:/.secrets \
certbot/dns-cloudflare certonly \
--dns-cloudflare-credentials /.secrets/cloudflare.ini \
--dns-cloudflare-propagation-seconds 60 \
--server https://acme-v02.api.letsencrypt.org/directory \
-d $DOMAIN_NAME
cp -r ./etc/archive/* ./
rm -r etc secrets
接着根据提示,输入:
- 输入
1
,使用DNS TXT记录获取证书 - 输入自己的邮箱,用于紧急续订和安全通知
- 输入
Y
,同意相关协议 - 按照自己的需求输入,是否同意Let’s Encrypt向您的邮箱发送一些新闻
脚本执行完毕后,get-ssl目录下的文件夹就是证书所在的文件夹