我是网站托管的初学者,请考虑我的问题是否太愚蠢,或者这不是问这个问题并将我定向到正确位置的正确位置。
我有网站(托管在子域上)已经在HTTP上运行(完全)。我正在使用“让我们加密”转向HTTPS。我已经生成了证书,配置了应用程序,然后使用AWS Lightail进行了部署。我已使用A记录指出了域名,其中我的lightail实例IP由子域指出了。
问题:每当我使用URL https://subdomain.mywebsite.com:80进入我的网站时,它都可以正常工作,并且没有隐私错误。我的HTTPS服务器在端口80上进行侦听。但是,如果我尝试使用任何其他URL(例如subdomain.mywebsite.com:80或subdomain.mywebsite.com),则在Google Chrome中出现隐私错误,提示“您的连接不是私有的”。
我认为我缺少一些基本知识,我自己无法理解。
我的应用程序是基于nodejs的,下面是我的服务器的代码段
const options = {
cert: fs.readFileSync('./sslcert/fullchain.pem'),
key: fs.readFileSync('./sslcert/privkey.pem')
};
app.listen(function () {
console.log("Live");
});
https.createServer(options, app).listen(80, function() {
console.log("From HTTPS");
});
答案 0 :(得分:0)
您需要的是将所有请求重定向到端口80到端口443,这样浏览器将自动应用https协议。
这意味着,如果有人使用“ subdomain.mywebsite.com”,则默认情况下为http和端口80,即“ http://subdomain.mywebsite.com:80”,并且您希望将其重定向到“ https://subdomain.mywebsite.com” ,默认情况下会在端口443上监听。然后,您在端口443(这是https的标准端口)上配置https服务。
您有两种方法:
在node.js中进行重定向:请查看此答案以获取指导:Automatic HTTPS connection/redirect with node.js/express
使用代理进行重定向:浏览此博客,以获取指导(我与该博客无关,只是通过Google进行了快速搜索):https://serversforhackers.com/c/redirect-http-to-https-nginx
< / li>我希望这会有所帮助。如果您需要更多说明,请提供一些评论。