【问题标题】:How to access the OpenShift wildcard SSL certificate and private key如何访问 OpenShift 通配符 SSL 证书和私钥
【发布时间】:2014-08-15 04:54:08
【问题描述】:

在此处的 OpenShift 网站上:https://help.openshift.com/hc/en-us/articles/202535440-How-do-I-get-SSL-for-my-domains-,它声明

You can always take advantage of our *.rhcloud.com wildcard certificate in order 
to securely connect to any application via it's original, OpenShift-provided 
hostname URL.

但是,Node 的 HTTPS 服务器需要证书和私钥的文件路径才能使用 HTTPS:

var privateKey  = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();
var httpsServer = https.createServer(credentials, app);
httpsServer.listen(443);

似乎没有任何 OpenShift 环境变量 (https://www.openshift.com/developers/openshift-environment-variables) 与 SSL 证书相关,并且除了上面的链接之外,文档没有提到它,它没有提供实际使用它的技术信息。

如何访问 OpenShift Node.js 设备/墨盒上的 privateKey 和证书文件?

【问题讨论】:

  • 好吧,您将无法访问他们的私钥。它是私人的。您必须创建自己的证书并获得自己的证书,在“OpenShift Online 的铜牌和银牌计划的用户可以使用对自定义别名主机名的 HTTPS 连接的支持”下。
  • 它特别指出,如果您使用免费计划,则可以使用他们的通配符证书。它只是没有说如何。如果我必须自己创建并获得青铜计划,为什么还要说明他们的通配符证书?
  • 我怀疑它可以通过他们终止 SSL 并将明文发送到您的服务器来工作。

标签: node.js ssl https openshift


【解决方案1】:

事实证明,所有 SSL 证书在到达设备/墨盒之前都由 OpenShift 路由器处理。根本不需要设置 HttpsServer,普通的 HttpServer 监听 8080 端口会透明地接收 HTTP 和 HTTPS 流量。

无论您使用的是自定义证书还是通配符证书都是如此,这非常漂亮。

【讨论】:

    【解决方案2】:

    Nodejs Express 应用场景详见OpenShift https answer。总而言之,使用 openshift 的代理提供给 nodejs Web 服务器的请求标头中的 X-Forwarded-Proto 标头的值来确定回复是否应将客户端重定向到 https 或者客户端是否已经在 https 上请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2012-03-30
      相关资源
      最近更新 更多