使用SSL客户端证书转发Web服务的代理

我有很多服务器访问各种外部的Web服务,其中大部分使用SSL,其中一些需要客户端证书。 我想集中configuration客户端证书,并将表示层与底层服务器分离。

虽然我可以使用Squid代理请求,但是我从文档中看不到如何告诉Squidselect特定于目标Web服务的客户端证书。 这可能吗?

一种方法是在Squid代理之外维护一组stunnel实例,然后将客户端软件configuration为使用带URL重写器的http请求通过适当的stunnel实例路由请求,但是如果我得到XML响应引用HTTPS DTD(除非我用完整的MITM重写内容)。

还有其他解决scheme吗?

更新

将“https”重写为“http”的问题在于,它会使用http URI打破任何其他资源 – 因为协议适配器会将这些资源转换回https!

我遇到这篇文章 ,解决了向代理连接添加客户端证书的问题 – 这可能是一个解决scheme。 但是确实需要客户端被configuration为使用代理服务器,在命名事物以及如何使用分离式DNS工作方面也存在问题。 诚然,这并不是什么大问题,但是让我想到这里所描述的是大多数CDN提供商使用的模式 – 因此我目前正在考虑使用Apache Traffic Server作为中间组件 – 这允许使用分离的DNS,分离的SSL通道客户端和来源,以及与原始服务器进行通信的客户端证书。

    使用可configuration的CA证书进行直接CONNECT的中间解密和encryption,并透明地redirectSSLstream量。

    http://wiki.squid-cache.org/Features/SslPeekAndSplice

    在深入挖掘之后,我决定使用磅的背靠背。 我也考虑过使用stunnel或haproxy,但是pound处理SSL的东西,并且具有操作http头的基本能力。