【问题标题】:OpenShift Invalid certificate | SSL on NodeJS appOpenShift 证书无效 | NodeJS 应用程序上的 SSL
【发布时间】:2015-03-04 21:50:09
【问题描述】:

这是我正在使用的:

  • NodeJS/Express 应用程序
  • OpenShift 环境(企业帐户)
  • 通过 HTTP 工作
  • HTTPS 证书信任错误
  • 使用 OpenShift 提供的默认通配符证书
  • 如果我手动接受浏览器引发的异常,则开始工作
  • 最新快递

Server.js 看起来像:

var express = require("express"),
    app = express(),
    IP = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1",
    PORT = process.env.OPENSHIFT_NODEJS_PORT || 8888; // its 8080 on openshift.  i use 8888 only on my local environment for irrelevant reasons


// we sometimes need special endpoints that arent files
app.get("/something-special", function(req, res) {
  res.send("something special");
});

// but typically it's static files
app.use(express.static(__dirname + "/public"));


// go!
app.listen(PORT, IP);

当我转到 https://myserver/file.js(位于 /public/file.js 中)时,我收到一条错误消息,指出证书不受信任。

我不太懂证书,对 Node.js 也知之甚少。这是一个学习项目,所以我试图在不改变课程的情况下解决我遇到的所有问题。

我已经尝试了所有我能想到的方法,包括:

  • app.enable('trust store') 在不同的 SO 上推荐
  • 简化我的 Node 应用并使用 req.secure 强制 HTTPS

【问题讨论】:

    标签: node.js ssl express ssl-certificate openshift


    【解决方案1】:

    您可以尝试使用网址的https://appname-yourdomainname.rhcloud.com/ 版本访问您的应用。底层数字证书是 *.rhcloud.com,由“Geotrust SSL CA”颁发,物有所值。如果您这样做,您不会收到与证书相关的错误,因为它们将基于通配符的证书应用于服务器。

    我不确定托管的免费版本是否允许提供/绑定私有 SSL...是的,您需要青铜级或更高级别才能允许您的应用程序使用私有 SSL。 Bummer

    【讨论】:

    • 不错的答案。您必须升级到青铜级才能安装自定义 ssl 证书。
    • 应该注意(因为从他们的网页上可能不清楚)青铜层仍然是免费的,除非您使用超过 3 个齿轮(您在免费层中所拥有的)。自定义 SSL 使用是免费的。
    • 我明天试试这个。我们没有使用免费版本。
    【解决方案2】:

    发生的情况很可能是您尝试将 *.rhcloud.com 通配符 ssl 证书与您的自定义域一起使用,但这是行不通的。 OpenShift 为您提供与您的 app-domain.rhcloud.com 地址匹配的 ssl 证书。如果您想在自定义域中正确使用 SSL,则需要为您的域名获取(或购买)自定义 ssl 证书。你可以在很多公司在线获得一个,或者你可以在这里免费获得一个:https://www.startssl.com

    此外,SSL 在到达您的设备之前已在代理上终止。查看这篇开发者中心文章,了解更多关于它是如何工作的信息:https://developers.openshift.com/en/managing-port-binding-routing.html

    【讨论】:

    • 我不能说真正的域名是什么,但可以说它是 Gorilla。该证书已签署到 *.ose.gorilla.com。我的应用是 gorilla-zoo.ose.gorilla.com。
    • 如果您在收到错误时查看证书的详细信息,它列出的无效的具体原因是什么?如果没有真正的域/错误,很难让您更好地了解这个问题。如果你愿意,你可以使用 help.openshift.com 上的联系表给我真实的域名。
    猜你喜欢
    • 2018-08-19
    • 2019-10-21
    • 2023-04-07
    • 2020-10-08
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2023-01-03
    相关资源
    最近更新 更多