使用 HTTPS 和子域托管

Hosting using HTTPS and subdomain

我是网站托管的新手,请考虑我的问题是不是太愚蠢了,或者这不是问这个问题的正确地点,并指导我到正确的地方。

我的网站(托管在子域上)已经 运行 在 HTTP 上(完美)。我正在使用 Let's Encrypt 迁移到 HTTPS。我已经生成了证书,配置了我的应用程序,然后使用 AWS lightsail 部署了它。我已使用 A 记录指向域名,其中我的 lightsail 实例 IP 由我的子域指向。

问题:每当我使用 URL https://subdomain.mywebsite.com:80 访问我的网站时,它都运行良好,没有隐私错误。我的 HTTPS 服务器侦听端口 80。但是,如果我尝试任何其他 URL,例如 subdomain.mywebsite.com:80 或 subdomain.mywebsite.com,我会在 google chrome 中收到隐私错误说 "Your connection is not private"。

我想我遗漏了一些我自己无法理解的基础知识。

我的应用程序是基于 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");
    });

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

这意味着如果有人使用"subdomain.mywebsite.com",它默认是http和端口80,即“http://subdomain.mywebsite.com:80" and you want it to be redirected to "https://subdomain.mywebsite.com”,默认监听你配置的端口443.And您的 https 服务在端口 443 上,这是 https 的标准端口。

你有两种方法:

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