Как добавить в комплекты шифров, доступные для ASP.NET HttpRequest клиента?
Когда мой веб-сайт ASP.NET работает на компьютере с Windows 7, он может подключиться (программно как "клиент") к службе, зашифрованной по протоколу SSL ("сервер"), на другом компьютере с Windows 7.
Но если мой веб-сайт находится в рабочей коробке (Windows Server 2003), журнал службы Windows показывает:
Запрос на подключение TLS 1.0 был получен от удаленного клиентского приложения, но ни один из наборов шифров, поддерживаемых клиентским приложением, не поддерживается сервером. Запрос на соединение SSL не выполнен.
(служба использует самозаверяющий сертификат, созданный makecert.exe, но я не вижу, как заставить makecert разрешить использование большего количества комплектов шифров... или я могу установить что-то на боксы 2003...? Это: https://serverfault.com/questions/166750 не работает для меня, потому что я не использую CSR)
1 ответ
Решением было снова сгенерировать мой сертификат, на этот раз форсировать RSA и SHA1 (хотя в любом случае SHA1 должен быть по умолчанию). По какой-то причине Win Server 2k3 не смог или не смог бы использовать правильные шифры со стандартным сертификатом makecert. Вот командная строка, которая работала для меня:
makecert -pe -r -ss my -sr localMachine -n "CN=domainnameoripaddressgoeshere.com" -e 01/01/2098 -a sha1 -eku 1.3.6.1.5.5.7.3.1 -sky exchange -sp "Microsoft RSA SChannel "Криптографический провайдер" -sy 12
Для получения дополнительной информации см. http://mgowen.com/2013/06/19/cipher-suites-issue/ и http://msdn.microsoft.com/en-us/library/bfsktky3(v=vs.110).aspx,
Если кто-то найдет это и захочет узнать о комплектах шифров, вот несколько вещей, которые я нашел по пути, которые могут вам помочь:
- Вы можете добавить два набора шифров RSA в Windows Server 2003 с помощью этого исправления: http://support.microsoft.com/kb/948963
- Вы можете увидеть, какие шифры поддерживаются в regedit (редактор реестра Windows) в HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers
- Вы можете использовать IIS Crypto (бесплатное приложение для конфигурирования шифров, https://www.nartac.com/Products/IISCrypto/), чтобы просматривать и включать / отключать шифры (в том числе шифры с исправлениями выше).