Nginx用户上传的SSL证书

我想知道什么是让用户上传他们的SSL证书的最佳方式。 我有一个基于rails / passenger / nginx的多租户应用程序,我需要每个用户使用他自己的域名和他的SSL证书。 那么这个问题最好的办法是什么? 我不想上传证书,每次上传新证书时都要在每台服务器上重新加载nginx,这是一个很好的解决scheme。

您将需要通知nginx重新加载TLS证书。 如果你不这样做,那么你所希望的是不可行的。

部分原因是在configuration加载时间/静态(文件存在,内容有效性,私钥匹配等)时进行检查,这在访问时/dynamic地(当处理请求时)不能合理地完成,这将会导致性能,甚至在合理的时间内提供任何请求的能力!

现在,如果重新加载变得可以接受,那么让nginx允许用户在nginx加载文件的时候放弃文件是不明智的,因为你提供了直接的方式来破坏你的服务器,无论是有意的/恶意的还是意外的用户加载一个错误的证书,无法取代它,因为服务器不会接受它!

幸运的是,nginx具有防止后者的保护措施,并且不会加载错误的configuration。 但是,仅仅为了第一个论点的缘故,你应该使用旁道来进行这个操作,而且永远不会是同一个。