let's encrypt,https,dns-01,SERVFAIL,lego,七牛,万网,阿里云,泛域名
解决方案:在运行 lego 命令的时候,(可以通过修改 /etc/resolv.conf )暂时把 DNS 设置为万网或者阿里云的,例如 ns1.alidns.com (阿里云), dns19.hichina.com (万网),再运行命令即可。
啥叫泛域名?简单理解就是形如*.yourdomain.com这样的。这些域名对应的(可能)不是一个ip地址,没办法用默认的方法做认证。
即使不用泛域名,在为七牛的存储空间绑定域名的时候,自己只能设置一个 CNAME ,让自己的域名指向七牛的某一个域名,例如(形象地表示为)
img.yourdomain.com 是自己可控的域名,可是指向的地址(在七牛)并不可控, 同样没办法用默认的方式通过 let's encrypt 的认证。
这两种情况下,都需要 dns-01 这种认证方式。简单而直观的解释就是,认证过程中需要设置一个带特定值的TXT类型域名记录,以此证明域名的控制权,从而生成证书。
网上教程很多,大都使用了 let's encrypt 的 certbot ,需要手动去设置这个TXT记录。请自行搜索方案,这里不赘述。我用的是 lego ,可以自动生成TXT记录,原理就是它通过调用域名服务商的api自动创建这个记录,所以只需一条命令即可搞定,形如:
此时,可能会报错SERVFAIL(大概是因为我的域名在万网?具体原因我没有整太明白):
再探究下来,是因为域名的SOA记录没有正确查询到,如果你也遇到这个问题,试试这个命令,看有没有SERVFAIL错误:
如果有的话,解决办法就是本文上面 TLDR 里面介绍的方法!
泛域名证书是SSL证书的一种类型,通常被称为通配符SSL证书,申请步骤如下:第一步:将CSR提交到代理商
CSR(Certificate Signing Request)文件必须由用户自己生成,也可以利用在线CSR生成工具。选择要申请的产品,提交一个新的订单,并将制作好的CSR文件提交。
第二步 资料提交到CA
当收到您的订单和CSR后,如果是域名验证型证书(DV SSL证书),在域名验证之后10分钟左右就可颁发证书,若是其他类型证书则是需要通过CA机构进行验证之后才可颁发。
第三步 发送验证邮件到管理员邮箱
权威CA机构获得资料后,将发送一封确认信到管理员邮箱,信中将包含一个 对应的链接过去。每一个订单,都有一个唯一的PIN以做验证用。
第四步 邮件验证
点击确认信中的链接,可以访问到CA机构验证网站,在验证网站,可以看到该订单的申请资料,然后点击”I Approve”完成邮件验证。
第五步 颁发证书
在用户完成邮件验证之后,CA机构会将证书通过邮件方式发送到申请人自己的邮箱,当用户收到证书后直接安装就可以了。若安装存在问题,我们是提供免费证书安装服务的。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)