Назад | Перейти на главную страницу

Nginx: можно ли использовать SSL-сертификаты от разных органов власти на одном IP-адресе?

Я хотел бы знать, возможно ли иметь два виртуальных хоста Nginx, сидящих на одном IP-адресе v4. Я знаю, что существует SNI, но у меня есть два основных (без SAN, без подстановочных знаков) SSL-сертификата от двух разных центров сертификации, которые можно использовать вместе на одном IP-адресе.

В принципе, достаточно ли настроить два файла conf (по одному на виртуальный хост), каждый из которых указывает на свой KEY и CRT? Или есть другие проблемы?

Я бы попробовал это решение сам, если бы мог, но центры сертификации хотят денег на сертификаты, и я бы предпочел заказать второй сертификат, только если я совершенно уверен, что смогу заставить его работать. N.B. Я не буду покупать второй сертификат у первого центра сертификации, их поддержка ужасна, и я хочу их оставить.

Сертификаты от разных центров сертификации не являются проблемой, пока клиенты доверяют этим центрам сертификации.

Обслуживание нескольких сайтов с разными сертификатами на одном IP-адресе, независимо от того, какие центры сертификации подписали сертификаты, имеет некоторые ограничения с точки зрения совместимости.

Для поддержки нескольких сертификатов на одном IP-адресе требуется поддержка расширения TLS под названием Server Name Indication (SNI) как на стороне сервера, так и на стороне клиента. Это не проблема, если вы имеете дело с современными браузерами, но может быть проблемой, если вам приходится иметь дело с устаревшим клиентским программным обеспечением.

Статья в Википедии о SNI не является исчерпывающей. список несовместимого ПО с такими особенностями, как Internet Explorer в Windows XP, браузер по умолчанию в Android 2.x, Java до версии 1.7 и т. д.

Единственная проблема - это совместимость с клиентом, некоторые очень старые комбинации браузера / ОС не будут работать, особенно Windows XP / IE8. Все остальное (Chrome, Opera, Firefox и т. Д.) В Windows XP будет работать.

Вам не нужно ничего покупать, подписывайте один из сертификатов (или все) самостоятельно. Подписывающий ЦС не имеет значения на стороне сервера, только на клиенте, и если вы импортируете свой ЦС в браузер, он будет вести себя точно так же, как если бы они были подписаны платным ЦС.