(请注意:这个问题是很多“你为什么不试试这个问题”的问题之一,我当然会这样做,但是由于我没有find一个明显的使用googlesearch的答案,所以我想我可能会更容易稍后可能需要在ServerFault上询问的人)
我的Web应用程序通过HTTPS在某些负载平衡器后面提供服务,并允许用户在某些情况下使用客户端证书进行身份validation。 现在我被问到是否希望将SSLencryption/解密卸载到负载均衡器,以便运行纯HTTP网站(从而更轻松地进行debugging和configuration),而负载平衡器将为HTTPS用户。 免费的额外CPU周期当然听起来不错,但是,我不相信我仍然能够检查用户的客户端证书。
是否有可能使用客户端证书而不运行一个完整的HTTPS站点?
这取决于您如何使用客户端证书来validation和授权用户。 你是否允许任何有authentication的人签名的证书,或者是否需要签名,CN等于某个特定的用户,或者等同于某个用户? 您当前的Web服务器是否处理授权或执行您的应用程序?
执行此操作的典型方法是终止负载平衡器上的SSL连接。 此负载均衡器将是“全面的HTTPS站点”,并且需要configuration为请求客户端证书。 然后,您的负载均衡器将执行检查以查看证书是否由受信任的CA签名。 然后,负载均衡器会将来自SSL证书的详细信息(如DN)作为HTTP头添加到您的应用的纯HTTP请求中。 然后,您的应用程序将检查这些HTTP标头,并根据应用程序和负载均衡器之间的信任对用户进行授权。 我已经看到了所有主要的负载均衡器,如F5,ZXTM甚至Apache HTTP服务器的成就。