无法在 Nginx 代理管理器中更新 Let's Encrypt SSL 证书

无法在 Nginx 代理管理器中更新 Let's Encrypt SSL 证书

我在 Linode 上的 Docker 中建立了一些站点。

我开始遵循以下说明:

使用 Linode 上的 Portainer 将 Docker 容器连接到域名以便轻松访问

我遵循的步骤如下:

  1. 创建了 Linode
  2. 在 Docker 容器中安装 NGINX 代理管理器
  3. 添加我的域名https://cloud.linode.com/domains,将其指向我的 Linode
  4. 将我的域名的域名服务器重定向到我的域名注册商上的 Linode
  5. 在 Docker 容器中添加 Portainer

然后我按照以下说明在 Docker 容器中安装了 VaultWarden:

使用 Portainer 上的 Vaultwarden 控制并保护您的密码

这里步骤如下:

  1. 设置子域名
  2. 在 Docker 中安装 VaultWarden
  3. 在 NGINX 中启用 HTTPS
  4. 在 NGINX 代理管理器中创建了一个指向我的 VaultWarden 容器的代理主机

在此过程中,我通过 NGINX 代理管理器 UI,使用 Let's Encrypt 创建了 SSL 证书。(从第二个视频的 11:00 开始)。

所有这些似乎都起到了大部分作用。

或者,更确切地说,在 NGINX 代理管理器的“添加 Let's Encrypt 证书”中有一个“测试服务器可达性”按钮,并且总是返回“与 API 的通信失败,NPM 是否运行正常?”的错误。

但是,不管怎样,我都能够使用生成的 SSL 密钥配置到 VaultWarden 容器的重定向。

然后能够使用子域访问 VaultWarden,并看到浏览器可以看到有效的证书。

现在,我的问题是,我收到的证书即将过期的电子邮件。

当我返回 NGINX 代理管理器并查看 SSL 证书时,我看到“立即续订”选项,当我尝试该选项时,系统会提示“请等待”一段时间,然后出现“内部错误”消息。

可能相关也可能不相关,“测试服务器可达性”选项仍然返回“与 API 的通信失败,NPM 是否运行正常?”错误。

我的问题是这些漂亮的 GUI 没有返回任何关于发生了什么或者为什么失败的信息。

某处必须有某种类型的日志记录,可以提示我问题出在哪里。

有人能帮我找到它吗?

答案1

我对这个问题做了进一步的研究。我认为这个问题与 NPM 中的两个错误有关。

  1. 在版本 v2.9.21 中,SSL 更新问题似乎已得到部分修复。多次尝试更新后,SSL 证书会更新;如果第一次不成功,我会等待大约 15 秒,然后再试一次。确保您运行的是最新版本:v2.9.21。

  2. 对于许多人来说,“测试服务器可达性”按钮似乎根本不起作用。您会发现 Github 上有多个问题表明了相同的行为;无论是 SSL 续订还是测试服务器可达性时显示的错误:“与 API 的通信失败,NPM 是否运行正常?”

在进一步检查我的日志后,我还注意到了以下几点错误:

无法构建最佳的 proxy_headers_hash,您应该增加 proxy_headers_hash_max_size:512 或 proxy_headers_hash_bucket_size:64;忽略 proxy_headers_hash_bucket_size

我发现在以下两行中添加以下两行可以改善〜/ npm /数据/ nginx /自定义/ http.conf

proxy_headers_hash_max_size 1024;
proxy_headers_hash_bucket_size 128;

相关内容