所以我在端口443上运行了Apache服务器,并在最新版本的Ubuntu上安装了NodeJS。现在我运行得很完美,除了端口100上运行我的NodeJS服务器的端口上没有SSL。
当我将其切换到端口80并通过sudo
运行服务器时,它会出错,所以我当然不能这样做。是否有任何解决方案能够在443和80以外的端口上实现LetsEncrypt SSL覆盖?
答案 0 :(得分:1)
端口80是http的标准端口(不加密)。
端口443是https(带加密)的标准端口。
通过标准端口我的意思是Web浏览器知道这些端口,因此不要指望您明确地给出端口。所以https://www.example.com和https://www.example.com:443是相同的,但因为您使用的是标准端口,所以不需要包含:443部分,因为浏览器会为您执行此操作。
虽然存在这些标准约定,但您可以在任何端口上使用SSL,因为它完全独立于端口。通常情况下,您永远不会在端口80上使用SSL,因为这会破坏这些约定。
因此,如果您想通过端口100使用NodeJS服务,那么您可以,但您需要在URL和https协议中明确说明该端口。
LetsEncrypt并没有给出你使用哪个端口(除了验证文件,它将文件放在外部世界可以联系的地方以证明你拥有域名和密钥 - 是你的在这里谈论?)。因此,您可以为Apache和NodeJ使用相同的证书。
更好的解决方案是使用标准端口和ProxyPass来自Apache的节点服务(通常为普通的http,但如果需要也可以是https): Apache and Node.js on the Same Server。这样你就可以在端口80上监听Apache(重定向到端口443),只能通过Apache获得端口443和节点服务。
答案 1 :(得分:1)
您可以在其他端口上使用SSL,只需确保在防火墙上允许它
sudo ufw allow [port number]