OpenShift证书无效| NodeJS应用程序上的SSL

时间:2015-03-04 21:50:10

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

以下是我正在使用的内容:

  • NodeJS / Express app
  • 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。这是一个学习项目,所以我试图解决我遇到的所有问题而不改变课程。

我已经尝试了我能想到的一切,包括:

  • app.enable(' trust store')推荐使用其他SO
  • 简化我的节点应用并使用req.secure强制HTTPS

2 个答案:

答案 0 :(得分:3)

您可以尝试使用网址的https://appname-yourdomainname.rhcloud.com/版访问您的应用。基础数字证书是* .rhcloud.com,由“Geotrust SSL CA”发行,用于它的价值。如果以这种方式执行此操作,则不会获得与证书相关的错误,因为它们将基于通配符的证书应用于服务器。

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

答案 1 :(得分:0)

正在发生的事情很可能是您尝试将* .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