我有一个域名example.com,它指向一个位于123.123.123.123
的aws ec2示例,我还有一个位于主服务器的gitlab示例,位于231.231.231.231
。
我的域的记录设置如下:
example.com
A 123.123.123.123
git.example.com
A 231.231.231.231
这里没什么奇怪的:当我输入www.example.com时example.com我会进入AWS EC2示例,当输入www.example.com时git.example.com我会进入我家里的静态IP。路由器将端口80上的所有请求发送到我的Ubuntu服务器,其中nginx运行Gitlab示例,一切都正常。
nginx配置:
server {
server_name git.example.com www.git.example.com;
location /.well-known/acme-challenge/ {
root /var/www;
try_files $uri =404;
}
location / {
proxy_pass http://127.0.0.1:4872;
}
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Accept-Encoding "";
proxy_set_header Proxy "";
}
现在我想用certbot设置SSL。我使用certonly
和--dry-run
,因为我只是想测试它是否工作。
sudo certbot certonly --cert-name example --nginx -d "git.example.com,www.git.example.com" --dry-run
响应为错误:
- The following errors were reported by the server:
Domain: git.example.com
Type: unauthorized
Detail: Invalid response from
http://git.example.com/.well-known/acme-challenge/...
[231.231.231.231]: "<!DOCTYPE html>\n<html>\n<head>\n<meta
charset=\"utf-8\">\n<style>body{font-family:Arial,Helvetica,sans-serif;font-size:12px;text-alig"
Domain: www.git.example.com
Type: unauthorized
Detail: Invalid response from
http://www.git.example.com/.well-known/acme-challenge/...
[231.231.231.231]: "<!DOCTYPE html>\n<html>\n<head>\n<meta
charset=\"utf-8\">\n<style>body{font-family:Arial,Helvetica,sans-serif;font-size:12px;text-alig"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
如果我尝试在手动模式下执行此操作,则会成功:
sudo certbot certonly --manual --preferred-challenges dns -d www.git.example.com -d git.example.com --dry-run
A
区域以及AAAA
都已正确配置和传播。
我想certbot可能不仅仅是git.example.com在这个IP上检查www.example.com和git.example.com,还检查example.com和www.example.com。因为它不能访问它们,所以返回错误。
有人知道我是对的吗,或者这个错误来自另一个问题?
1条答案
按热度按时间0s0u357o1#
假设这是一个本地服务器,您是否打开了HTTP端口以允许certbot连接?
Certbot使用端口443或80来质询域,您可能应该在防火墙上打开它。如果这不可能,您可以尝试其他质询,您可以在here中找到更多信息。