Caddy_SSL.jpg

之前看到有人问了下Caddy怎么申请Let’s Encrypt泛域名SSL证书,就翻了下官方文档了解下,发现比用Nginx申请的过程简单很多,这里就发下方法。如果有人需要Nginx申请的方法,可以看下博主很久前发过《免费申请Let's Encrypt泛域名SSl证书》这篇文章。

说明:Caddy支持以下DNS服务商,所以需要提前将你的域名DNS服务器转移到指定服务商。

cloudflare、cloudxns、dnspod、gandi/gandiv5、godaddy、namecheap、vultr、googlecloud、auroradns、azure、digitalocean、dnsimple、dnsmadeeasy、dyn、lightsail、linode、ns1、namedotcom、ovh、otc、pdns、rackspace、rfc2136、route53

由于博主的域名DNS都在CloudFlare,所以下面以CF为例。

1、安装Caddy

curl https://getcaddy.com | bash -s personal tls.dns.cloudflare

后面的tls.dns.cloudflarecloudflare的插件,如果你是其它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

2、设置环境变量
以下为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

这些变量值可以在DNS服务商账户中查找,一般在设置什么的地方。然后这里以CloudFlare为例,先登录账号,然后再去获取APIAPI获取地址:https://www.cloudflare.com/a/profile

CaddysqSSL.png

再使用命令设置环境变量:

#CloudFlare账户API
export CLOUDFLARE_API_KEY="4993d7315d4c72770242357da"  
#CloudFlare账户邮箱
export CLOUDFLARE_EMAIL="[email protected]" 

3、获取通配符

先新建配置文件,使用命令:

#将域名修改为自己的,然后将下面全部一起复制到SSH客户端运行
echo "*.moewah.com {
tls {
    dns cloudflare
}
}" > Caddyfile

这里如果你是其它DNS服务商就需要修改dns后面的参数,也就是服务商名称,均用小写字母,可以参考步骤1安装caddy的插件参数,比如插件为tls.dns.auroradns,那就用dns auroradns参数。

然后启动Caddy

caddy -conf Caddyfile

接下来几秒钟后,会自动给你生成一个通配符SSL证书,证书存放路径为:

~/.caddy/acme/acme-v02.api.letsencrypt.org/sites/wildcard_.moewah.com

此时你就可以使用crtkey文件为你的所有子域名配置SSL了。

最后证书有效期依然是3个月,到期后可以重新用此方法申请。


相关推荐

  1. 群晖 Synology 部署 ZeroSSL 泛域名证书
  2. 因群晖NAS系统CA证书失效导致的系列问题
  3. SSL证书无法通过acme.sh自动续期,竟是因为它!
  4. MikuTools:一款网页在线工具箱(视频/音乐解析下载/磁力搜索等)
  5. My-BookMark:自建多用户的在线书签管理系统
  6. Merge - 微信/支付宝/PayPal等付款二维码合并程序
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/948.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。