【问题标题】:unable to generating SSL certificate with LetsEncrypt certbot using node js无法使用节点 js 使用 LetsEncrypt certbot 生成 SSL 证书
【发布时间】:2020-12-16 12:37:16
【问题描述】:

我已经在带有预配置 SSL 证书的 firebase 上部署了我的 react 应用程序,但是因为我使用 HTTP 而不是 HTTPS 对节点 js 服务器进行 API 调用。由于我正在从安全站点浏览器中访问非安全内容,因此阻止了我的所有 API 调用。

最好和显而易见的选择是通过 HTTPS 加载所有资源以提高我网站的安全性,这意味着在这种情况下为我的节点服务器生成一个由“证书颁发机构”签名的单独证书,但我无法实现这一点.

复制步骤

  1. 已安装 Certbot
  2. 使用命令$ certbot certonly --manual 使用 Certbot 生成 SSL 证书
  3. 输入您的域名
  4. 完成 HTTP-01 质询流程

问题

  1. 如果我的域已经使用 SSL 证书进行保护,为什么我需要在第 3 步中提供我的域?我的意思是这是一个 Web 服务器,会通过公共 IP 接收 API 请求,为什么需要域?

  2. 对于 HTTP-01 质询过程,Certbot 将要求您在 Web 服务器文档根目录中的 .well-known/acme-challenge/ 目录中创建一个具有自动生成密钥的文件,该文件必须包含身份验证关键,当我这样做时,我得到以下错误:

    一些挑战失败了。要修复这些错误,请确保您的域名输入正确,并且该域的 DNS A/AAAA 记录包含正确的 IP 地址。

我也很乐意收到其他建议。感谢您的宝贵时间。

【问题讨论】:

  • 您是否将 Node.JS 服务器托管在与您的 Firebase React 应用程序完全相同 域上?
  • @Take-Some-Bytes 我不确定我是否理解您的问题,但节点 js 服务器本地托管在窗口服务器上,而反应应用程序托管在 Firebase 上。我正在使用 IP 将请求从我的站点发送到我的服务器。

标签: node.js firebase ssl lets-encrypt


【解决方案1】:

首先,您必须了解您有一个指向 Firebase 托管的 React 应用程序的域。该域已经有一个 TLS(又名 SSL)证书。现在,您正在尝试使用 cerbot 来保护一个 Node.JS 服务器,该服务器没有有一个指向它的域,使用您已经安全的域。

您现在应该明白为什么这不能按预期工作了。您有一个指向您的 React 应用程序的域,但不是您的 Node.JS 服务器,并且您正在尝试使用 certbot 来保护该域(即反正已经安全了)。 certbot 将向您的 React 应用程序发出 HTTP-01 质询请求,但它会失败,因为质询不存在。

你如何解决这个问题?通过给您的Node.JS 服务器一个域名,并使用带有certbot那个 域。

现在,您不必为您的Node.JS 服务器购买另一个域名。您可以使用subdomain,然后将该子域指向您的Node.JS 服务器。 那么,您可以使用certbot 来保护您的Node.JS 应用程序。

【讨论】:

  • 一切都很简单,但最令人困惑的部分是如何使 http:///.well-known/acme-challenge/ 可用或可访问?我从我的网络服务器端了解到,我需要使用 Certbot 生成的令牌保存和提供静态文件,但我不明白我如何或从何处调用/提供此文件。
  • 你的意思是你不知道如何提供文件?或者您不知道如何将其提供给网络?
  • 首先感谢您的帮助和关注,其次,这是我目前正在做的事情a)。创建一个指向我的 Node Js 服务器的子域,因为子域将在创建 24-48 小时后可用,我想了解流程是如何工作的。首先,启动 certbot 并输入域,然后在我的服务器的根目录中创建 .wellknown/acme-challenge/authkey 目录,然后在 authkey 文件中添加令牌,然后在挑战请求进入时服务器文件......
  • 然后为了确保一切正常,打开我的浏览器并导航到:http://example.com/.well-known/acme-challenge/auth-key 进行验证。这是可行的还是推荐的路径?
  • 这对我来说似乎没问题,这就是文档所说的有效。所以试试吧,如果你需要进一步的帮助,请告诉我:)。
猜你喜欢
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2020-03-11
  • 2022-08-06
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
相关资源
最近更新 更多