使用HTTPS和子域托管

时间:2018-12-16 22:37:11

标签: https web-hosting lets-encrypt amazon-lightsail

我是网站托管的初学者,请考虑我的问题是否太愚蠢,或者这不是问这个问题并将我定向到正确位置的正确位置。

我有网站(托管在子域上)已经在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");
    });

1 个答案:

答案 0 :(得分:0)

您需要的是将所有请求重定向到端口80到端口443,这样浏览器将自动应用https协议。

这意味着,如果有人使用“ subdomain.mywebsite.com”,则默认情况下为http和端口80,即“ http://subdomain.mywebsite.com:80”,并且您希望将其重定向到“ https://subdomain.mywebsite.com” ,默认情况下会在端口443上监听。然后,您在端口443(这是https的标准端口)上配置https服务。

您有两种方法:

我希望这会有所帮助。如果您需要更多说明,请提供一些评论。