У меня есть много серверов, которые обращаются к различным внешним веб-сервисам, большинство из которых используют SSL, для некоторых из них требуются сертификаты клиентов. Я хотел бы централизовать конфигурацию клиентских сертификатов и отделить уровень представления от базовых серверов.
Хотя я мог бы использовать Squid для проксирования запросов, я не вижу в документации, как указать Squid выбрать сертификат клиента, специфичный для целевого веб-сервиса. Это возможно?
Один из подходов состоит в том, чтобы поддерживать группу экземпляров stunnel за пределами прокси-сервера Squid, а затем настраивать клиентское программное обеспечение для использования HTTP-запросов с перезаписчиком URL-адресов для маршрутизации запроса через соответствующий экземпляр stunnel, однако это сломается, если я получу ответ XML, ссылающийся на HTTPS DTD (если я не перепишу содержимое полным MITM).
Есть другое решение?
Обновить
Проблема с повторной записью https в http заключается в том, что он затем ломает любые дополнительные ресурсы с http URI, поскольку адаптер протокола затем преобразует их обратно в https!
Я наткнулся Эта статья который решает проблему добавления клиентского сертификата к прокси-соединению, что потенциально является решением. Но требует, чтобы клиент был настроен на использование прокси, также есть проблемы с именованием вещей и тем, как заставить его работать с разделенным DNS. По общему признанию, это не огромные проблемы, но это заставило меня подумать, что то, что я здесь описываю, является шаблоном, используемым большинством провайдеров CDN - поэтому в настоящее время я рассматриваю возможность использования Apache Traffic Server в качестве промежуточного компонента - это позволяет использовать разделенный DNS, отдельные каналы SSL между клиент и источник, а также сертификаты клиента для связи с сервером происхождения.
Покопавшись дальше, я решил использовать два экземпляра фунта подряд. Я также рассматривал возможность использования stunnel или haproxy, но pound имеет дело с материалами SSL и имеет базовые возможности для управления заголовками http.
Расшифровка Squid-in-the-middle и шифрование прямого CONNECT и прозрачно перенаправленного SSL-трафика с использованием настраиваемых сертификатов CA.