在Express.js应用程序中通过SSL转发所有内容

时间:2014-11-12 19:50:28

标签: ssl curl https dns url-redirection

似乎无法通过SSL获得所有这些转发。理想情况下,这将在没有通配符证书的情况下完成。

http://baredomain.com https://baredomain.com http://www.baredomain.com https://www.baredomain.com

理想情况下,如果输入浏览器或卷曲的所有内容都将通过https://www.baredomain.comhttps://baredomain.com发送所有流量(只有一个,而不是两个)。

我尝试过A-records,CNAME记录和node.js重定向代码的组合。我似乎无法让这个工作。我已经尝试了很多不同的配置并且充其量了。

我正在努力为node.js应用程序提供理想的设置。我一直在努力工作,为了让人们能够毫无困难地找到他们,上面列出的所有路线都需要工作。

更新:嗯......似乎还有一种称为SAN(主题替代名称)的东西。

1 个答案:

答案 0 :(得分:1)

您还可以为每个名称提供两个单独的证书。如果您的目标是降低成本,那么使用www.baredomain.com作为SAN密码的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();
  }
});

应该这样做。