是否可以在一个Jelastic应用程序上设置多个SSL?

时间:2016-07-06 17:15:02

标签: nginx jelastic

我想询问是否可以使用Nginx Load Balancer在Jelastic的一个IP上配置多个SSL。

该用法适用于将接收来自多个自定义域的请求的代理服务器。

例如:

example-proxy.com指向分配给Jelastic Jetty应用程序的公共IP地址。

现在自定义域指向Jetty应用程序

custom-domain-example.com CNAME www指向example-proxy.com等。 custom-domain-example-N.org CNAME www指向example-proxy.com等。

  • 是否可以使用Jelastic进行此类配置?
  • 这是否可以使用现有的Jelastic API完成?现在我在API文档中看到的是BindSSL,但它似乎只能绑定一个,这是正确的吗?

1 个答案:

答案 0 :(得分:2)

是的,但是您需要手动配置它(仅在nginx配置中),而不是使用Jelastic仪表板/ API SSL功能。

要记住的另一点是,因为每个容器有1个IP,所以只能通过SNI提供多个SSL证书。这可能会对您产生影响,具体取决于您的用户使用的浏览器:在大多数情况下,现在还可以(旧的移动操作系统和Windows XP是主要的例外)

BindSSL API方法允许您在环境的外部节点(在您的案例中为Nginx Load Balancer)上自动配置一个 SSL证书。如果您多次尝试BindSSL,则只需替换现有证书(不添加多个证书)。

基本上,此功能是在SNI被广泛接受之前构建的,因此假定为1 SSL证书。每1个环境。您可以阅读有关SNI的更多信息,以便在此处做出明智的决定,确定它是否符合您的需求:http://blog.layershift.com/sni-ssl-production-ready/

您需要的替代方案是购买多域SSL证书(SAN证书)。这使您可以在1个证书中包含多个主机名。由于您提到您是我们的客户,因此您可以联系我们的SSL团队获取此选项的详细信息/定价。

如果您仍想使用多个SSL证书+通过SNI提供服务,您可能需要使用ReadWrite API方法来保存SSL证书部件和配置。您的Nginx节点上的文件。

在任何配置之后,不要忘记重新启动nginx服务(您可以使用RestartNodeById)。变化。

编辑:正如您所说,您的最终用户可以控制此过程,您可能更愿意使用reload而不是restart(请参阅http://nginx.org/en/docs/beginners_guide.html#control)。

您可以使用ExecCmdByIdcommandList=[{"command": "sudo service nginx reload"}]

通过Jelastic API调用它

但是如果你允许最终用户通过你的应用程序上传他们自己的证书,请注意 - 你需要确保他们上传的内容真的是证书而且没有任何恶意......