В одной статье я прочитал, что Openssl 1.0.2 позволяет выбирать сертификат в зависимости от конфигурации клиента. Например, Windows XP early SP2 не поддерживает сертификат ECC. для этого сервера будет возвращаться один сертификат и другой сертификат для современных ОС.
Я не могу найти описание этой технологии. Поддерживает ли ее какой-либо веб-сервер?
решение1
Вы имеете в виду этот фрагмент в статье по ссылке (здесь, переведенной на английский язык):
OpenSSL версии 1.0.2 позволяет выбирать сертификат сервера на основе параметров клиента. К сожалению, Nginx из коробки не позволяет использовать несколько сертификатов для одного
server
.
Похоже, это относится к следующей функции OpenSSL:добавлено в 1.0.2:
*) Добавить обратный вызов сертификата. Если установлено, то вызывается всякий раз, когда сертификат требуется клиенту или серверу. Приложение может решить, какую цепочку сертификатов представить, на основе произвольных критериев: например, поддерживаемых алгоритмов подписи. Добавить очень простой пример в s_server. Это устраняет многие проблемы и ограничения существующего обратного вызова сертификата клиента: например, теперь вы можете очистить существующий сертификат и указать всю цепочку. [Стив Хенсон]
Пока что я не могу найти никаких доказательств того, что nginx поддерживает эту функциональность, или каких-либо неофициальных патчей. И, бегло просмотрев, я не нашел ничего, что было бы релевантно Apache или любому другому веб-серверу. Я уверен, что это будет добавлено в конечном итоге, но если вам это действительно нужно в ближайшее время, я бы посоветовал спросить в списке рассылки nginx.