Я размещаю веб-сайт ASP.NET с wildcard ssl-сертификатом на IIS / Windows 2008R2. Хотя Chrome отлично работает с моим веб-сайтом и показывает зеленый замок https-соединения, в https-данных упоминается «устаревшая криптография»:
Я предполагаю, что это связано с SHA1, который также упоминается Chrome в том же окне.
Однако, согласно проверке сертификатов SSL от Digicert, следует использовать SHA256:
Теперь я не уверен, что происходит и как решить эту проблему. Похоже, чтоэтот пост в блогеописывает обходной путь решения этой проблемы, но он кажется настолько неясным (Шаг 1: Установить OpenSSL?), что я не могу себе представить, что это официальный способ сделать это в Windows 2008 R2.
Как мне избавиться от предупреждения о сертификате SSL?
Редактировать:После применениясценарийрекомендованный Грантом, мой SSLabs был улучшен с C до A, и Chrome использует TLS 1.2 вместо 1.0. Однако предупреждение об «устаревшей криптографии» все еще там.
решение1
Проблема не в SHA, а в TLS 1.0.
Отчет SSL Labsдля вашего домена дает полную историю. Ваш сервер поддерживает только TLS 1.0, а не 1.1 или 1.2. Кроме того, он все еще поддерживает устаревшие шифры, такие как RC4, и не поддерживает совершенную прямую секретность.
Настроить IIS для повышения безопасности вполне возможно, но делать это вручную — утомительно. Этот замечательный сценарий, написанный Александром Хассом, установит ряд параметров реестра, чтобы отключить старые небезопасные методы шифрования для IIS7.5 и IIS8.
После запуска скрипта перезагрузите сервер, и вы должны получить оценку A на SSLLabs, а предупреждения в Chrome должны прекратиться.
решение2
Я тестирую это на новом сервере 2012 R2, при примененииАлександр Хасс сценарий(AH-Script), я все еще получаю устаревшую криптографию:
Мой Chrome 43 поддерживает следующие наборы шифров:
[C02B] TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
[C02F] TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
[009E] TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
[CC14] TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
[CC13] TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[CC15] TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[0039] TLS_DHE_RSA_WITH_AES_256_SHA
[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[0033] TLS_DHE_RSA_WITH_AES_128_SHA
[009C] TLS_RSA_WITH_AES_128_GCM_SHA256
[0035] TLS_RSA_AES_256_SHA
[002F] TLS_RSA_AES_128_SHA
[000A] SSL_RSA_WITH_3DES_EDE_SHA
[00FF] TLS_EMPTY_RENEGOTIATION_INFO_SCSV
поэтому используется: [C013], довольно далеко внизу. Кажется, Chrome предпочитает SHA256 и GCM вместо CBC.
Я взял AH-Script и добавил [009E] (третий сверху) в список наборов шифров. После перезагрузки я теперь получаю:
Я попытался заставить работать два верхних [C08B] и [C02F], но не смог.
Итак, исправив скрипт и запустив его, я получил modern cryptography
.
Я удалил один из существующих шифров, поскольку длина этой строки ограничена. Начало моей строки теперь выглядит так:
$cipherSuitesOrder = @(
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256',
'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',
Редактировать:Я только что протестировал это на sslLabs.com, и использование TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
дает мне результат B
ниже, чем A
у меня было раньше.
Этот сервер поддерживает слабые параметры обмена ключами Диффи-Хеллмана (DH). Оценка ограничена B.
Так что, возможно, вы не захотите его использовать. Почему Chrome так высоко его оценивает, я не знаю?
решение3
Сообщение "устаревшая криптография" в Chrome появляется из-за того, что сервер поддерживает слабые обмены ключами Диффи-Хеллмана (DH). Более конкретно, это задокументировано вСпецификация HTTP/2 в черном списке Cipher Suite.
Когда вы используетеСкрипт PowerShell от Александра Хасса(из текущего принятого ответа), затемон включает в себя эти шифры, которыев черном списке:
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Если вы посмотрите наСлужба приложений Azure использует следующий порядок наборов шифров::
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
Это привело к получению рейтинга A в Qualys SSL Labs (июль 2016 г.) и поддержке Forward Secrecy для большинства распространенных браузеров.
Я обнаружил проблему Chrome, поскольку на моем локальном IIS Express на Windows 10 он возвращал сообщение об ошибке ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
в Chrome 51 с настроенными в моей системе черными списками наборов шифров.