安装Caddy
curl https://getcaddy.com | bash -s personal tls.dns.cloudflare
后面的tls.dns.cloudflare为cloudflare的插件,如果你是其它DNS服务商就需要替换下插件参数,比如:
tls.dns.auroradns
tls.dns.azure
tls.dns.cloudflare
tls.dns.cloudxns
tls.dns.digitalocean
tls.dns.dnsimple
tls.dns.dnsmadeeasy
tls.dns.dnspod
tls.dns.dyn
tls.dns.exoscale
tls.dns.gandi
tls.dns.gandiv5
tls.dns.godaddy
tls.dns.googlecloud
tls.dns.lightsail
tls.dns.linode
tls.dns.namecheap
tls.dns.ns1
tls.dns.otc
tls.dns.ovh
tls.dns.powerdns
tls.dns.rackspace
tls.dns.rfc2136
tls.dns.route53i
tls.dns.vultr
设置环境变量
以下为Caddy申请通配符时所需要的DNS服务商的环境变量。
#Aurora DNS by PCExtreme
AURORA_USER_ID
AURORA_KEY
AURORA_ENDPOINT(optional)
#Azure DNS
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_SUBSCRIPTION_ID
AZURE_TENANT_ID
#Cloudflare
CLOUDFLARE_EMAIL
CLOUDFLARE_API_KEY
#CloudXNS
CLOUDXNS_API_KEY
CLOUDXNS_SECRET_KEY
#DigitalOcean
DO_AUTH_TOKEN
#DNSimple
DNSIMPLE_EMAIL
DNSIMPLE_OAUTH_TOKEN
#DNS Made Easy
DNSMADEEASY_API_KEY
DNSMADEEASY_API_SECRET
DNSMADEEASY_SANDBOX(true/false)
#DNSPod
DNSPOD_API_KEY
#DynDNS
DYN_CUSTOMER_NAME
DYN_USER_NAME
DYN_PASSWORD
#Gandi/Gandiv5
GANDI_API_KEY/GANDIV5_API_KEY
#GoDaddy
GODADDY_API_KEY
GODADDY_API_SECRET
#Google Cloud DNS
GCE_PROJECT
GCE_DOMAIN
GOOGLE_APPLICATION_CREDENTIALS
#Lightsail by AWS
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN(optional)
DNS_ZONE(optional)
#Linode
LINODE_API_KEY
#Namecheap
NAMECHEAP_API_USER
NAMECHEAP_API_KEY
#NS1
NS1_API_KEY
#Open Telekom Cloud Managed DNS
OTC_DOMAIN_NAME
OTC_USER_NAME
OTC_PASSWORD
OTC_PROJECT_NAME
OTC_IDENTITY_ENDPOINT(optional)
#OVH
OVH_ENDPOINT
OVH_APPLICATION_KEY
OVH_APPLICATION_SECRET
OVH_CONSUMER_KEY
#PowerDNS
PDNS_API_URL
PDNS_API_KEY
#Rackspace
RACKSPACE_USER
RACKSPACE_API_KEY
#RFC2136
RFC2136_NAMESERVER
RFC2136_TSIG_ALGORITHM
RFC2136_TSIG_KEY
RFC2136_TSIG_SECRET
#Route53 by AWS
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
#Vultr
VULTR_API_KEY
登陆CloudFlare的API Tokens 然后下拉找到【API Keys】【Global API Key】【View】
再使用命令设置环境变量:
export CLOUDFLARE_API_KEY="3ce7025c4ae*****35003326cad0bc1a6694f" #CloudFlare账户API
export CLOUDFLARE_EMAIL="yourname@gmail.com" #CloudFlare账户邮箱
获取通配符
先新建配置文件,使用命令:
#将域名修改为自己的,然后将下面全部一起复制到SSH客户端运行
echo "*.xxx.com {
tls {
dns cloudflare
}
}" > Caddyfile
这里如果你是其它DNS服务商就需要修改dns后面的参数,也就是服务商名称,均用小写字母,可以参考步骤1安装caddy的插件参数,比如插件为tls.dns.auroradns,那就用dns auroradns参数。
然后启动Caddy:
caddy -conf Caddyfile
会自动给你生成一个通配符SSL证书 Caddy自动申请SSL证书位置:
~/.caddy/acme/acme-v02.api.letsencrypt.org/sites/wildcard_.xxx.com
此时你就可以使用*.xxx.com.crt和*.xxx.com.key文件为你的所有子域名配置SSL了。
最后证书有效期依然是3个月,到期后可以重新用此方法申请。
如果提示WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with ulimit -n 8192.可按提示输入以下命令
ulimit -n 8192