Javascript 不同端口上的LetsEncrypt覆盖率

Javascript 不同端口上的LetsEncrypt覆盖率,javascript,node.js,apache,ssl,lets-encrypt,Javascript,Node.js,Apache,Ssl,Lets Encrypt,因此,我在端口443上运行Apache服务器,在最新版本的Ubuntu上安装了NodeJS。现在我所有的东西都运行得很好,除了在我运行NodeJS服务器的端口100上没有SSL 当我将其切换到端口80并通过sudo运行服务器时,它会给出一个错误,因此我当然不能这样做。除了443和80之外,是否有任何解决方案能够在端口上覆盖LetsEncrypt SSL?端口80是http的标准端口(无加密) 端口443是https的标准端口(带有加密) 所谓标准端口,我的意思是web浏览器知道这些端口,因此不希

因此,我在端口443上运行Apache服务器,在最新版本的Ubuntu上安装了NodeJS。现在我所有的东西都运行得很好,除了在我运行NodeJS服务器的端口100上没有SSL


当我将其切换到端口80并通过
sudo
运行服务器时,它会给出一个错误,因此我当然不能这样做。除了443和80之外,是否有任何解决方案能够在端口上覆盖LetsEncrypt SSL?

端口80是http的标准端口(无加密)

端口443是https的标准端口(带有加密)

所谓标准端口,我的意思是web浏览器知道这些端口,因此不希望您显式地提供端口。所以和都是一样的,但是因为您使用的是标准端口,所以不需要包括:443部分,因为浏览器将为您完成这项工作

您可以在任何端口上使用SSL,因为它完全独立于端口,尽管有这些标准约定。通常情况下,您永远不会在端口80上使用SSL,例如,这将打破这些约定

因此,如果您想通过端口100使用NodeJS服务,那么您可以,但您需要在URL以及https协议中明确声明该端口

LetsEncrypt根本不在乎你使用哪个端口(除了验证文件,它将文件放在外部世界可以接触到的地方,以证明你拥有域和密钥的所有权——这就是你在这里谈论的吗?)。因此,您可以对Apache和NodeJ使用相同的证书

更好的解决方案是使用标准端口并从Apache代理传递节点服务(通常为普通http,但如果需要也可以是https):
. 这样,您就可以让Apache监听端口80(重定向到端口443)和端口443,节点服务只能通过Apache使用。

您可以在不同的端口上使用SSL,只要确保您在防火墙上允许SSL即可

sudo ufw allow [port number]

我无法使ProxyPass解决方案工作。我正在处理一个配置面板,我有一个表单需要发布到NodeJS,以便发生一些事情。唯一的问题是我无法让LetsEncrypt覆盖其他端口(不是80和443)。如何强制LE将SSL放在某个端口上?为什么不能让ProxyPass工作?您所说的“如何强制LE在某个端口上安装SSL”是什么意思?证书与端口无关,因此不确定您为什么认为LE需要在这里执行任何操作,除非正如我所说的,您正在讨论让LE加载质询文件以确认所有权。