我在 ubuntu 14 上运行 gitlab。之前配置的证书已过期(没有设置 cron 条目以进行续订)。我正在尝试设置 certbot(让我们加密)来更新证书,然后设置 crontab 条目以进行自动更新。当我运行 certbot 时,我收到一条复制到下面的消息(是否有可以获取更详细错误消息的位置):
正在运行的命令:
./certbot-auto certonly --webroot -w /opt/gitlab/ssl -d git.xyz.com
git.xyz.com 是一个有效的域(我用 xyz 替换了实际的域)。目录 /opt/gitlab/ssl 存在,并且用于运行命令的用户对该目录及其内容具有读/写权限。
错误 授权过程失败。git.xyz.com (http-01): urn:acme:error:connection :: 服务器无法连接到客户端验证域 :: 无法连接到 git.xyz.com
重要笔记:
- The following errors were reported by the server:
Domain: git.xyz.com
Type: connection
Detail: Could not connect to git.xyz.com
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
关于如何更好地调试此问题的任何想法?
忘了提:我可以从外部网络访问 URL(域名是正确的),目前没有配置防火墙来阻止端口 80/443 上的流量(我什至关闭了防火墙进行测试)。
我不确定这是否有任何帮助,但至少我可以想象这是问题所在:
https
如果通过 连接,您将自动重定向到http
。HSTS
. 我不确定 Let's Encrypt 是否尊重此标头,如果他们曾经看过的话。那么该怎么办?我也不确定,但这里有一些提示:
http
重https
试。如果
HSTS
被尊重:将
HSTS
标头设置为非常短的值,例如一秒钟,放置此配置,再次运行 Let's Encrypt 客户端,以便他们获取新标头,禁用重定向,等待一段时间,然后再次运行客户端。如果这不起作用:获取另一个有效的证书,例如由StartSSL颁发,安装并重试。
为未来:
做点好事:
(次要:如果您不想公开您的域,则应将其从帖子中删除。)