执行如下的脚本(在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
1. 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目录下的文件夹就是证书所在的文件夹
