Я размещаю веб-сайт ASP.NET с подстановочным ssl-сертификатом в IIS / Windows 2008R2. Хотя Chrome отлично работает с моим веб-сайтом и показывает зеленую блокировку соединения https, в деталях https упоминается «устаревшая криптография»:
Я предполагаю, что это связано с SHA1, который также упоминается хромом в том же окне.
Однако, согласно Digicert's SSL Certificate Checker, следует использовать SHA256:
Теперь я не уверен, что происходит и как решить эту проблему. Кажется, что это сообщение в блоге описывает обходной путь для этой проблемы, но обходной путь кажется настолько неясным (1. Шаг: Установите OpenSSL?), что я не могу представить, что это официальный способ сделать это в Windows 2008 R2.
Как мне продолжить, чтобы избавиться от предупреждения о сертификате ssl?
Редактировать: После применения сценарий рекомендованный Грантом, мои SSLabs были улучшены с C до A, а Chrome использует TLS 1.2 вместо 1.0. Однако предупреждение об устаревшей криптографии все еще присутствует.
Проблема не в SHA, а в TLS 1.0.
Отчет SSL Labs для вашего домена дает полную историю. Ваш сервер поддерживает только TLS 1.0, но не 1.1 или 1.2. Кроме того, он по-прежнему поддерживает устаревшие шифры, такие как RC4, и не поддерживает идеальную прямую секретность.
Настроить IIS для повышения безопасности вполне возможно, но делать это вручную - сложная задача. Этот замечательный сценарий, написанный Александром Хассом, установит различные параметры реестра, чтобы отключить старые небезопасные методы шифрования для IIS7.5 и IIS8.
После запуска сценария перезагрузите сервер, и вы должны получить рейтинг A на SSLLabs и перестать получать предупреждения в Chrome.
Я тестирую это на свежем сервере 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 так высоко оценивает это, я не знаю?
Сообщение «устаревшая криптография» в 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 г.) и поддерживает прямую секретность для большинства распространенных браузеров.
Я обнаружил проблему с Chrome, потому что на моем локальном IIS Express в Windows 10 он возвращал сообщение об ошибке ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
в Chrome 51 с настроенными в моей системе наборами шифров из черного списка.