我想询问是否可以使用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
等。
BindSSL
,但它似乎只能绑定一个,这是正确的吗?答案 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提供服务,您可能需要使用Read和Write API方法来保存SSL证书部件和配置。您的Nginx节点上的文件。
在任何配置之后,不要忘记重新启动nginx服务(您可以使用RestartNodeById)。变化。
编辑:正如您所说,您的最终用户可以控制此过程,您可能更愿意使用reload
而不是restart
(请参阅http://nginx.org/en/docs/beginners_guide.html#control)。
您可以使用ExecCmdById和commandList=[{"command": "sudo service nginx reload"}]
但是如果你允许最终用户通过你的应用程序上传他们自己的证书,请注意 - 你需要确保他们上传的内容真的是证书而且没有任何恶意......