Настройка IIS на одновременное использование сертификатов ГОСТ и RSA при использовании свойства linked
Опубликовано Илья Харченко on 2020-11-23 21:26
|
||||||||||||||||||||||||||
В случае, когда к одному веб-серверу необходимо настроить доступ по TLS со стороны клиентов, использующих различные браузеры, часть из которых имеет поддержку ГОСТ TLS, а часть - нет, можно настроить IIS на сервере на работу с двумя сертификатами сервера с различными криптоалгоритмами – ГОСТ и RSA. При этом на сервере будет использоваться один и тот же ip-адрес и порт для подключения клиентов. Если сертификат сервера с алгоритмом RSA планируется использовать с одним из Microsoft RSA CSP – то следует использовать свойство shadow, описанное в другой статье. Далее описан вариант, когда сертификат сервера с алгоритмом RSA будет установлен с использованием КриптоПро RSA CSP и свойства linked. Отличие shadow и linked заключается в том, что при shadow реализация TLS в варианте RSA делается с помощью Microsoft Schannel SSP, а для linked – на стороне сервера всегда используется реализация TLS от КриптоПро (и для ГОСТ, и для RSA). На сервере должен быть установлен КриптоПро CSP версии не ниже 5.0 R2 (5.0.11944). Последовательность действий по настройке:
Для применения изменений требуется перезагрузка сервера.
csptest -property -linkedthumbprint="отпечаток сертификата RSA" -cert "отпечаток сертификата ГОСТ" -machine Внимание! При копировании отпечатков из окна просмотра свойств сертификата, не захватывать непечатные символы в начале строки. Нужно будет убрать пробелы внутри отпечатков (если есть), и между названием опции -linkedthumbprint и значением не должно быть пробелов, только знак "=", например: csptest -property -linkedthumbprint=cdc6afd1eceae8cefd3689ebda4ad49e626ef776 -cert aae86068649073777590a604721382f2f2adc842 -machine В опции -cert можно вместо отпечатка указать значение (или его часть) поля Общее имя (Common Name) сертификата сервера с алгоритмом ГОСТ. Если внутри значения есть пробелы – то значение нужно заключить в кавычки.
После этого клиенты могут подключаться по ГОСТ TLS, если браузер его поддерживает. Если нет – то автоматически будет использоваться другой сертификат сервера, отпечаток которого был задан в свойстве linked. Для того, чтобы проверить, установлено ли свойство linked для сертификата ГОСТ в хранилище сертификатов "Личные" локального компьютера, можно использовать команду: csptest -certprop -CERT "часть имени поля Common Name или отпечаток сертификата" Важно - написание названия опции большими буквами (-CERT) означает поиск в хранилище локального компьютера, а не текущего пользователя. В выводе информации о сертификате будет указано: Property # 65281 found->CP_CERT_LINKED_CERT_PROP_ID id. Thumbprint is: <значение отпечатка сертификата RSA> Например: csptest -certprop -CERT aae86068649073777590a604721382f2f2adc842 Клиенты должны доверять тем ЦС, которые выпустили соответствующие сертификаты сервера. При использовании двустороннего TLS (когда браузер клиента предъявляет сертификат клиента) не все варианты сочетания криптоалгоритмов сертификатов сервера и клиента будут работать. Далее приводится таблица совместимости для некоторых браузеров.
При необходимости очистить свойство linked для ГОСТ сертификата сервера в хранилище Личные локального компьютера можно использовать команду без указания отпечатка сертификата RSA: csptest -property -linkedthumbprint -cert "отпечаток сертификата ГОСТ" -machine Если после этого будет нужно продолжать использовать тот же сертификат ГОСТ в IIS (уже без cвязки c сертификатом RSA) – требуется повторно выбрать тот же сертификат ГОСТ в привязке на IIS. | ||||||||||||||||||||||||||
|