似乎无法让所有这些都通过 SSL 转发。理想情况下,这将在没有通配符证书的情况下完成。
http://baredomain.com https://baredomain.com http://www.baredomain.com https://www.baredomain.com
理想情况下,如果在浏览器中输入或 curl 上述所有内容,所有流量将通过 https://www.baredomain.com 发送或 https://baredomain.com (只有一个,不是两个)。
我尝试了 A 记录、CNAME 记录和 node.js 重定向代码的组合。我似乎无法正常工作。我已经尝试了很多不同的配置并且最多只能接近。
我正在尝试为 node.js 应用程序进行理想的设置。我一直在做很多工作,为了让人们能够毫无困难地找到他们,上面列出的所有路线都需要工作。
更新:嗯...似乎还有一种叫做 SAN(主题备用名称)的东西。
最佳答案
您还可以为每个名称设置两个单独的证书。如果您的目标是降低成本,使用 www.baredomain.com 作为 SAN dnsname 的 baredomain.com 的 SAN 证书会很好。
加上一些简单的重定向代码,例如
app.get('*', function(req, res, next) {
if (/^www\./.test(req.headers.host)) {
res.redirect(301, 'http://'+req.headers.host.replace(/^www\./,'')+req.url);
} else {
next();
}
});
应该这样做。
关于ssl - 在 Express.js 应用程序中通过 SSL 转发所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895336/