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