之前写过一篇文章,使用oneinstack自动配置let's encrypt ssl证书,原文地址:

oneintsack的好处自然不用多说了,真的特别方便,而且最大的好处就是,linux上各种东西即使用了一键部署工具,但是还是可以进行DIY配置。

SSL 多域名当然是 let's encrypt 莫属了,买多域名证书还是比较贵- -都超过了服务器价格了。

请输入图片描述

一、问题:

今天使用Let's Encrypt 配置 SSL 证书的时候,报了一个错误:

DNS problem: NXDOMAIN looking up A for xxx.com

问题标的比较明确: DNS Problem .

在linux运维笔记的一篇文章中看到有人提出了同样的问题,linux运维笔记的文章地址:

(文章和我写的那篇使用oneinstack部署let's encrypt一样,没有提出这个问题,只是在评论中提出了,还是注明一下地址)

文章的作者也指出了是因为DNS记录的问题,其实就是:

当你在服务器上使用 ping demo.ptbird.cn 的时候,绝对是ping不同的,会提示未找到主机

二、原因

出现这个问题原因可能是:

  • 1. 刚刚解析了A记录,解析服务器还没有生效

    • 这种情况一般不会出现,因为阿里云这样的解析,一分钟内基本都会生效,使用浏览器访问是没有问题的
  • 2. 服务器本地 DNS缓存未更新

三、解决

1. 首先确定A记录是否成效

确定的方式很简单,在浏览器输入自己的域名,查看能否访问成功。

2. 确定DNS是否有问题

1) ping主机

# ping主机,如果无法发现host,则确定是dns问题
$ ping demo.ptbird.cn

2) 更新DNS缓存

不建议直接 network restart

使用nscd

如果系统没装可以装一下,nscd做DNS缓存加速很有用。

  • centos : yum install nscd
  • ubuntu :apt-get install nscd

如果已经装了直接更新

# 主要是hosts
$ nscd -i passwd
$ nscd -i group
$ nscd -i hosts

3. 关于nscd

推荐一篇不错的文章: