某些域对尝试通过我的服务器上的let加密自动获得ssl证书不满意。我正在尝试申请免费证书,但是不知何故该请求返回以下错误:
Error: http://example.com/.well-known/acme-challenge/letsencrypt_1553892860 is not reachable. Aborting the script. dig output for domain.nl: <<EMPTY>>
Please make sure /.well-known alias is setup in WWW server.
通常,错误返回的是IP地址或主机名,我知道该域随后未指向我的服务器。我已经成功解决了这些错误。
但是在这种情况下,输出为空,这确实使我感到困惑。
因此,到目前为止,我创建了一个测试文件,将该文件放置在Web服务器的de /.well-known/acme-challenge/文件夹中,并尝试使用http://example.com/.well-known/acme-challenge/test.txt从浏览器访问该文件。浏览器成功打开了文件,确认我可以到达目的地。
因此,我尝试确认使用curl来获取相同的文件(因为使用Directadmin的letencrypt使用curl来验证放置在相同acme-challenge中的域数据)。不幸的是,以某种方式卷曲的响应指出找不到与请求相同的文件。
这是我用来请求带有curl的文件的行:
/usr/bin/curl -I -L -k -X GET http://example.com/.well-known/acme-challenge/test.txt
现在我的问题是,由于无法成功获取文件,服务器dns或curl脚本是否可能会被混淆?是否可能需要重置curl或删除缓存?
我已经尝试使用yum update libcurl更新curl,并使用sudo systemctl restart httpd.service重新启动apache。
服务器正在使用apache和Directadmin运行CentO。
。
更新:
同时,我发现了导致404为什么无法在我的服务器上找到链接的问题。该域使用的CNAME指向我服务器上托管的另一个域,即example1hostingprovider.com CNAME example2myreseller.com。 CNAME example3myserver.com
因此,在这种情况下,域名由网络托管公司托管,该公司在我的转销商托管服务器上拥有一个CNAME,在该公司我还有一个指向我的正式服务器的CNAME。
在myserver(即example2.com)上执行链接的卷曲时,它正在尝试打开myreseller托管(即exmaple2.com)内的链接。但是,此转销商托管不包含任何Web文件。
我发现这是通过从服务器到域的nslookup(显示我的经销商(example2.com)的IP),而从我的家庭Internet到同一域的nslookup显示了服务器的IP(example3。 com)。
因此,这绝对是DNS问题,为什么在为其请求ssl证书时无法访问该域。
最奇怪的是,当我对它执行nslookup时,在同一提供商(例如example1.com)上托管的另一个具有相同名称服务器和相同CNAME的域名显示了我的服务器(example3.com)的IP。从我的服务器上。
有没有办法强制更改应该显示在DNS服务器上的域的dns ip?我的服务器正在使用DNS服务器8.8.8.8