Разные сертификаты для разных UA на nginx. Возможно ли?
Захотелось странного. Хочу что бы одним UA отдавался сертификат от LetsEncrypt, а другим от StartSSL, попробовал в лоб через if ($http_user_agent), nginx посмотрел на меня квадратными глазами и спросил не падал ли я с могучего дуба. В смысле [emerg] "ssl_certificate" directive is not allowed here.
Возможно ли, в принципе, мое странное желание или мне с такими идеями нужно ко врачу?
UPD: Понял, что сначала идет установление коннекта и передача сертификата, а потому невозможно в чистом виде. Может кто-нибудь предложит свои варианты решения такого странного желания?
В рамках классического SSL это невозможно, так как один сертификат ставится на одну пару ip+port и сертификат применяется до передачи каких-либо заголовков.
В рамках SNI, мне кажется это тоже невозможно, так как если я правильно понимаю, это примерно тоже самое, только при установлении соединения указывается имя хоста.
Какие я вижу варианты - два хоста www1.site.ru и www2.site.ru с разными сертификатами (SNI или два IP) и редирект с www.site.ru (а так же с www1 и www2) в зависимости от user_agent.
Ну есть тогда уж вариант отключить HSTS, принимать по http пациентов и редиректить на le.domain.com startssl.domain.com в зависимости от UA, а на тех хостах дополнительную проверку, что бы если туда пришел не тот пациент отправлять его куда ему положено.
Да, наверное вы правы, я как-то не подумал, что у нас сначала идет соединение, а потом уже сервер получает UA и может действовать.