使用Caddy申请免费的Let’s Encrypt泛域名SSL证书

网络技术 admin 6个月前 (05-29) 219次浏览 0个评论

使用Caddy申请免费的Let’s Encrypt泛域名SSL证书

之前看到有人问了下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

使用Caddy申请免费的Let’s Encrypt泛域名SSL证书

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

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

3、获取通配符

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

#将域名修改为自己的,然后将下面全部一起复制到SSH客户端运行 echo "*.moerats.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_.moerats.com

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

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


免费部落 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用Caddy申请免费的Let’s Encrypt泛域名SSL证书
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址