Express 域名仅在添加Https、节点时有效

Express 域名仅在添加Https、节点时有效,express,https,dns,Express,Https,Dns,这是我关于node的第一个真正的问题。我最近已将我的网站转换为https。这很好,但我的站点只能由“”访问。在转换之前,我使用了端口80(默认端口)和基本快速路由。我曾经能够连接到我服务器的ip地址并键入域名“www.example.com”。我已将DNS设置为重定向到具有ipv4和ipv6的服务器的ip地址。切换到https后,我无法再使用ip地址和端口443(端口443上的主机)访问服务器。我想知道为什么我不能使用ip地址+端口号(123.456.78.90:443)访问我的网站,以及为什么

这是我关于node的第一个真正的问题。我最近已将我的网站转换为https。这很好,但我的站点只能由“”访问。在转换之前,我使用了端口80(默认端口)和基本快速路由。我曾经能够连接到我服务器的ip地址并键入域名“www.example.com”。我已将DNS设置为重定向到具有ipv4和ipv6的服务器的ip地址。切换到https后,我无法再使用ip地址和端口443(端口443上的主机)访问服务器。我想知道为什么我不能使用ip地址+端口号(123.456.78.90:443)访问我的网站,以及为什么我在访问我的网站时必须如此具体,而不仅仅是使用www.example.com

express = require('express');
app = express();

var http = require('https')
var fs = require('fs')

var sslPath = '/etc/letsencrypt/live/www.example.site/'

var options = {
    key: fs.readFileSync(sslPath + 'privkey.pem'),
    cert: fs.readFileSync(sslPath + 'fullchain.pem')
}

app.use(express.static("public"));
app.set("view engine", "ejs");

 app.get("/", function(req,res){
     console.log("Someone Connected")
     res.render("homepage");
});

server = http.createServer(options, app)
io = require('socket.io').listen(server)
server.listen(443)

如果您的服务器只接受
https
,则必须在URL中指定
https://
。这是浏览器知道您要使用的协议的唯一方式。当您在浏览器的URL栏中省略URL中的
https://
时,无论您指定的端口号是什么,浏览器都将采用
http

您可以让服务器在端口80上响应http并自动转发到https。然后,您可以在浏览器中键入
www.example.com
,它会自动重定向到
https://www.example.com

您的服务器将永远不会响应浏览器将转换为
123.456.78.90:443的
http://123.456.78.90:443
因为在端口443上,您正在侦听的是
https
连接,而不是
http
连接(不能在同一端口上同时侦听这两个连接)

使用介绍的自动重定向逻辑,您可以在浏览器中键入
123.456.78.90
,它将重定向到
https://123.456.78.90
,这会起作用


您可以自己实现自动重定向(设置一个简单的http服务器,监听端口80,并将所有传入请求重定向到同一URL,但前面有https)。或者,许多主机提供商在其基础结构中提供了内置的此功能(内置于代理或负载平衡器中)。

如果您的服务器只接受
https
,则您必须在URL中指定
https://
。这是浏览器知道您要使用的协议的唯一方式。当您在浏览器的URL栏中省略URL中的
https://
时,无论您指定的端口号是什么,浏览器都将采用
http

您可以让服务器在端口80上响应http并自动转发到https。然后,您可以在浏览器中键入
www.example.com
,它会自动重定向到
https://www.example.com

您的服务器将永远不会响应浏览器将转换为
123.456.78.90:443的
http://123.456.78.90:443
因为在端口443上,您正在侦听的是
https
连接,而不是
http
连接(不能在同一端口上同时侦听这两个连接)

使用介绍的自动重定向逻辑,您可以在浏览器中键入
123.456.78.90
,它将重定向到
https://123.456.78.90
,这会起作用


您可以自己实现自动重定向(设置一个简单的http服务器,监听端口80,并将所有传入请求重定向到同一URL,但前面有https)。或者,许多主机提供商在其基础设施(内置于代理或负载平衡器)中提供了此功能。

您所说的“不再能够访问”到底是什么意思,当您尝试
https://123.456.78.90:443
?太快了。当我说不能再访问时,我不能输入url“123.456.78.90:433”,它说“页面不工作,123.456.78.90没有发送任何数据”。我曾经能够在不是https的时候访问,你所说的“不再能够访问”到底是什么意思,当你尝试
https://123.456.78.90:443
?太快了。当我说不能再访问时,我不能输入url“123.456.78.90:433”,它说“页面不工作,123.456.78.90没有发送任何数据”。当不是httpsThanks的时候,我也能这么做。谢谢,调查一下。