Linux 下 acme.sh 申请 Let’s Encrypt 证书失败常见原因分析

2018-04-2513:51:52 9 12,647
摘要

基本上上述两个常见问题解决掉也就可以顺利的申请获取到Let’s Encrypt的SSL证书了,如果是比较另类的云主机或者云主机操作系统,建议大家到acme.sh脚本的 GitHub 上多看看,或者也可以到LNMP的官方论坛上传详细日志发帖求助。

明月发现最近在著名生产环境军哥 LNMP 一键安装包论坛上看到很多站长们都在反映 LNMP 下使用 acme.sh 申请 Let's Encrypt 证书失败的提问帖子,自从 LNMP1.5 测试版发布后将 1.4 的 certbot 申请 Let's Encrypt 证书更换为 acme.sh 后,这类问题才突然增多了起来。certbot 是早期 Let's Encrypt 官方推荐的在服务器上在线申请管理 Let's Encrypt 证书方式,随着 GitHub 上的 acme.sh 脚本越来越完善,越来越多的受到了使用者们的追捧,因为 acme.sh 将在线申请管理维护绿色证书变的异常的简单高效了,最重要的是 acme.sh 脚本几乎不依赖服务器系统环境,完全独立运行,这点儿相对于 certbot 是最大的进步和变化了。

明月也一直非常喜欢使用 acme.sh 来申请管理 Let's Encrypt 证书,虽然 Let's Encrypt 仅有 90 天的有效期,但是借助 acme.sh 和 Linux 下的定时任务 crontab 基本上就是部署一次终身自动续期了。至于 acme.sh 的具体使用方法请参考【Linux 下使用 acme.sh 申请和管理 Let’s Encrypt 证书】一文即可,今天明月要给大家讲的是在使用 acme.sh 过程中比较常见的出错原因和解决方法,以便可以帮助到大家。

首先,明月早期都是自己安装 acme.sh 到 LNMP 环境里使用的,随着 LNMP 1.5 测试版发布上线,明月第一次使用 LNMP 里集成的 acme.sh 的时候也是出错,每次申请的时候都是提示“invalid domain”错误,可以说是百思不得其解,后来还是在军哥的提醒下想起来问题可能是出在 acme.sh 的 DNS 方式上,特别是使用了不同的云主机通过一个 DNS 解析 API 接口申请证书就会出现这个问题,问题的原因就是没有将云主机的 IP 地址加入到 DNS 解析 API 的白名单里,以明月使用的 CloudXNS 为例,设置 API 的 IP 白名单如下截图:

如果是多个云主机使用的是同一个 DNS 解析服务的话,就需要将多个云主机的公网 IP 加入到 DNS API 的白名单里,否则使用 acme.sh 的 DNS 方式申请就会出现“invalid domain”的提示。当然不同的 DNS 解析服务设定这个 IP 白名单的地方肯定也不一样的,大家可以参考 DNS 服务商的官方文档来了解具体的方法。

明月发现上述这个问题是个不小的“坑”,很多站长们都是栽倒在这个“坑”里了。

其它的常见问题一般也就是 acme.sh 脚本的升级和更新了,有时候某个版本会因为服务器网络环境造成一些请求失败,所以保证当前使用的 acme.sh 脚本是最新版的尤为重要,至于如何更新 acme.sh 脚本?大家自行百度、谷歌吧。

基本上上述两个常见问题解决掉也就可以顺利的申请获取到 Let's Encrypt 的 SSL 证书了,如果是比较另类的云主机或者云主机操作系统,建议大家到 acme.sh 脚本的 GitHub 上多看看,或者也可以到 LNMP 的官方论坛上传详细日志发帖求助。

历史文章推荐:

  • 打赏明月一下下
  • 多谢您的赞赏!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:9   其中:访客  4   博主  5

    • sorryjoy 1

      已经添加了白名单,但是还是出现了invalid domain的错误,看了日志是get cloudxns api获取域名列表后,显示timeout= 就显示invalid domain,难道因为我的ip被q的原因的吗,我的vps除了80端口,其余都是被封的,是不是有可能是这个原因呢?

        • 明月登楼  博主

          @sorryjoy 要把服务器IP添加到CloudXNS的白名单里的!你添加了嘛?

          • 明月登楼  博主

            @sorryjoy 你的CloudXNS API的Key和Secret都导入了吗?你要申请Let’s Encrypt的SSL证书,不开启443端口,你要申请啥呢?

              • sorryjoy 1

                @明月登楼 导入了api,添加了白名单,关闭了防火墙。

                  • 明月登楼  博主

                    @sorryjoy 那就不知道了,只能你自己排查了,毕竟服务器部署情况你最清楚了,我的经验只能帮你到这里了!除非你的服务器是我部署的!!!

              • boke112导航 9

                我用的是阿里云DNS,好像没有设置过什么API白名单,幸好当初DNS方式申请证书正常了

                • 闲鱼 6

                  赞,折腾就是文章

                    • 明月登楼  博主

                      @闲鱼 呵呵,给朋友网站申请证书的时候碰到的问题!算是经验总结!