OpenShift无效证书| SSL上的NodeJS应用程序
以下是我正在处理的内容:
- 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。 这是一个学习项目,所以我试图解决所有我遇到的问题,而不改变课程。
我尝试了所有我能想到的,包括:
- 在另一个SO上推荐的app.enable('trust store')
- 简化我的Node应用程序,并使用req.secure强制使用HTTPS
您可以尝试使用url的https://appname-yourdomainname.rhcloud.com/版本访问您的应用。 底层的数字证书是* .rhcloud.com,由“Geotrust SSL CA”发行。 如果你这样做,你不会得到与证书有关的错误,因为他们将基于通配符的证书应用到服务器上。
我不确定主机的免费版本是否允许私人SSL提供/绑定…是的,你需要铜牌或更好的允许私人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