繁体   English   中英

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

[英]OpenShift Invalid certificate | SSL on NodeJS app

这是我正在使用的:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM