При наличии сертификатов SHA1 устарело в основных браузерах кажется разумным получить сертификат, подписанный SHA2. Но при этом вы заблокируете пользователей IE6. Хотя для большинства людей это не будет проблемой, в некоторых случаях это может заблокировать значительных пользователей.
Глядя на Подтверждение SSL клиент отправляет подробную информацию о том, что он поддерживает.
Итак, теоретически сервер может отправить сертификат, который будет поддерживать клиент. Новые браузеры получат подписанный SHA2, а старые - SHA1.
Однако не похоже, что есть какие-либо способы сделать это с помощью конфигурации nginx. Хотя вы можете устанавливать версии шифров и протоколов, у вас нет никакой логики для определения того, как вести себя с различными конфигурациями клиентов.
Есть ли способ серверить другой сертификат в зависимости от того, что поддерживает клиент?
В настоящее время это невозможно с nginx (хотя и с apache). Однако похоже, что такие компании, как CloudFlare, уже внедрили свои собственные внутренние модификации nginx, чтобы иметь возможность делать это, и, надеюсь, будут открывать исходные коды своей работы (https://news.ycombinator.com/item?id=8276770), поэтому я надеюсь / ожидаю, что nginx получит эту возможность через год, когда потребность станет более острой по мере приближения к 2016 году.
А пока я только что купил годовой сертификат, срок действия которого истекает в конце 2015 года, поэтому предупреждения Chrome меня не касаются, пока, надеюсь, не появится такая функция.