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

标签 ssl curl https dns redirect

似乎无法让所有这些都通过 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/

相关文章:

python - pycurl 失败但 curl(来自 bash)在 ubuntu 中工作

php - 使用 CURLOPT_POSTFIELDS 时数组 2 字符串转换

tomcat - HTTPS 通信失败,jdk 1.6(32 位客户端)与 jdk 1.8(64 位)服务器 : READ: Unknown-3. 3 警报,长度 = 2

linux - wget 返回 "Unable to establish SSL connection"

java - 在 Java 中创建 HTTPS 服务器 - 本地证书在哪里?

python - 如何展平 Pandascore E-Sports GET 响应格式的 JSON 数据,以便在 pandas 中拥有非常干净的数据框?

php - 在没有重定向的情况下打开 PHP 页面?

java - Android 通过 SSL 使用 NTLM 失败

javascript - 使用 window.opener.location 从安全 (https) 弹出窗口访问非安全 (http) 开启器

amazon-web-services - 为同一服务器使用多个证书