更新:

更新:

我希望我的 Web 服务器上的流量能够得到安全传输。我运行的是 Ubuntu Server 20.04 Abyss Web Server,它原生支持使用Let's Encrypt证书。

我遵循了所有说明在他们的网站上找到确实如此,但之后尝试访问时,它只会给出 403 错误。切换回 http 时,没有任何问题 - 我可以完美地访问该网站。从 https 切换到 http 时,我唯一要更改的是下拉框,上面写着protocol(见下图)然后重新启动服务器。

443 显然在我的电脑上打开了路由器(否则我只会收到超时响应)

生成 LE 证书时没有遇到任何问题。控制台显示一切正常,但事实并非如此。

我的所有网络流量在到达我这里之前都要经过 Cloudflare - 这可能是导致问题的原因吗?如果是这样,我会坚持使用 Cloudflare 的 http,因为它们提供了额外的安全性,但这听起来像是我的电脑出了问题 - 某些东西不允许 https 请求真正访问网站。


Cloudflare 自己提供了一些加密,但这只是在用户代理和 Cloudflare 服务器之间 - Cloudflare 和原始服务器之间没有加密。我想要端到端加密。

因此,当您访问我的网站时,它会说https,但这仅限于用户和 Cloudflare 之间 - 我的服务器和 Cloudflare 之间的流量仍然是端口 80 上的普通 http。


为了证明我正确地遵循了说明,以下是主控制台中我的网站的主要设置(带有我的主机名):

在此处输入图片描述

这可能是我电脑上的一些我不知道的规则吗?我认为这是服务器端的问题,与 cloudflare 无关。文档路径htdocs/从未改变,也不在我的电脑上需要提升权限才能访问的位置。就像我之前说的 - 当我切换回端口 80 上的 http 时,一切都正常。我没有改变任何事物别的。

目前,我刚刚将我的网站切换回 http,以便可以访问,直到(希望)这个问题可以得到解决。

更新:

绕过 Cloudflare 的代理带来了同样的结果——403 禁止。

为了提供一些可能有帮助的额外信息,以下是我的 DNS 记录(敏感信息已划掉):

在此处输入图片描述

我的Let's Encrypt证书现在也已经完全验证,所以它一定是权限或主机名问题之类的。

答案1

解决了!

这与我期望的解决方案完全相反。

问题不在我的原始服务器端,所有权限和防火墙规则都设置正确 - 这是 Cloudflare 端的问题。

因为我已经将网站配置为使用 https仅有的,尝试通过 HTTP 访问该站点时返回 403 禁止,因为我不允许 HTTP 流量,只允许 HTTPS。

因此,由于我在使用 Cloudflare 时设置的方式,第一的将此网站上线,不断尝试通过 HTTP 查看我的网站,当出现该错误时,会将其显示给用户。重置我的所有 Cloudflare 设置并重新配置它们,以便它可以通过 HTTPS 访问我的网站,这样它就可以访问,同时仍然通过 Cloudflare 代理。

它现在还将所有 HTTP 请求重写为 HTTPS,因此不再出现 403 错误!

相关内容