与同一域中的节点 websocket 连接共享 Let's Encrypt 证书?可能吗?可取吗?

与同一域中的节点 websocket 连接共享 Let's Encrypt 证书?可能吗?可取吗?

是否可以/建议通过 Nginx 注册和续订用于 https 的 Let's Encrypt 证书,并在同一域上的 websocket 连接 (wss://) 上共享同一证书?websocket 服务器正在从 node.js 运行(具体来说是 Colyseus - 内置了 Express)

如果没有,是否值得将 Nginx 设置为 websocket 服务器前面的反向代理并以此方式设置证书?

最后,如果只使用一个证书并将其与 websocket 服务器共享是个好主意,那么当 certbot 更新证书时,让 Express 重新加载文件的最佳方法是什么?certbot 可以通知服务器它已更新证书吗?或者文件是否需要重新加载

答案1

是否可以/建议通过 Nginx 注册和续订用于 https 的 Let's Encrypt 证书,并在同一域上的 websocket 连接 (wss://) 上共享同一证书?websocket 服务器正在从 node.js 运行(具体来说是 Colyseus - 内置了 Express)

可行但不建议:建议的方法是使用行业标准的 Web 服务器作为反向代理,在本文回答时,排名第一的是 nginx。但是,haproxy 也可以充当反向代理。

如果没有,是否值得将 Nginx 设置为 websocket 服务器前面的反向代理并以此方式设置证书?

是的,这是推荐的方法。因为,再说一次,您通常不会直接运行绑定到 HTTP/HTTPS 端口的特殊应用程序:这会禁止您使用各种类型的重要功能。证书续订的无缝重新加载就是其中之一。

最后,如果只使用一个证书并与 websocket 服务器共享是一个好主意,那么当 certbot 更新证书时让 Express 重新加载文件的最佳方法是什么?

基本上你只需运行certbot renew克伦德为你运行它)并告诉 nginx 使用 来刷新它nginx -s reload

certbot 可以通知服务器它已更新证书吗?

我对此并不了解,但无论如何这种机制实际上并不是必要的 - 使用 LE 证书这种情况每 3 个月只会发生一次,所以......

或者是否需要重新加载文件

当然可以。怎么可能不行呢?它们只在 Web 服务器启动时加载一次。

相关内容