понедельник, 25 апреля 2016 г.

Как изменить алгоритм SHA1 на SHA256 в Windows CA

Все уже в курсе, что сертификаты с подписью SHA1 должны быть заменены, т.к. алгоритм SHA1 более не считается надёжным.
Это описано в ноябре 2015 года в статье Microsoft SHA-1 Deprecation Update.
Сейчас появилось дополнение An update to our SHA-1 deprecation roadmap.
Суть в том, что в Microsoft решили ускориться и летом с выходом большого обновления Windows 10 (Anniversary Update) браузеры Internet Explorer и Edge начнут выдавать предупреждение для сайтов с сертификатами, подписанными SHA1, а в феврале 2017 года такие сайты будут блокироваться. Пока заявлено, что блокировка будет распространяться только на сертификаты, чьи корневые сертификаты входят в Microsoft Trusted Root Certificate program. Обновление будет выпущено для Windows 7, Windows 8.1 and Windows 10.

Переходим на SHA256:

1.  На сервере с ролью CA(Certification Authority) проверить текущий используемый алгоритм: certutil -getreg ca\csp\CNGHashAlgorithm 
Если результат выполнения команды SHA256, перейти к шагу 4.
2. По умолчанию результат выполнения команды SHA1.  Необходимо выполнить команду:
certutil -setreg ca\csp\CNGHashAlgorithm SHA256 
Это перенастроит ваш CA на использование SHA256 для CNG хешей.
3.  Перезапустите Certificate Services: 
net stop CertSvc && net start CertSvc
4.  Перевыпишите ваш корневой сертификат:
certutil -renewCert ReuseKeys
5.  Перезапустите службу Certificate Services: 
net stop CertSvc && net start CertSvc
Эти действия сгенерируют новый корневой сертификат вашего CA с использованием SHA256 в качестве алгоритма подписи. Необходимо будет раздань новый сертификат вашим клиентам. http://technet.microsoft.com/en-us/library/cc730763(v=ws.10).aspx

14 комментариев:

  1. Спасибо за полезный гайд :) Пригодилось :)

    ОтветитьУдалить
  2. Спасибо, пригодилось. Не подскажите как сделать тоже самое на win7, необходимо,чтобы самоподписанные сертификаты были с sha-256

    ОтветитьУдалить
    Ответы
    1. https://www.youtube.com/watch?v=oacPzb_zhNA

      Удалить
    2. Самый простой способ, при помощи утилиты makecert, например:
      "c:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\makecert.exe" -a SHA256 d:\123.cer

      Еще ссылка по теме:


      http://winitpro.ru/index.php/2015/12/28/kak-sozdat-samopodpisannyj-sertifikat-v-windows/


      Удалить
  3. Просто и ясно, спасибо!

    ОтветитьУдалить
  4. Спасибо большое! Полезно!

    ОтветитьУдалить
  5. Простите за дилетантский вопрос, нужно ли будет перевыпускать сертификаты для служб (веб-серверов, терминалов и т.п.) или достаточно распространить обновленный корневой сертификат?

    ОтветитьУдалить
    Ответы
    1. В принципе все будет работать, как при продлении корневого сертификата.
      Но для web-серверов лучше перевыпустить. Тогда новые сертификаты будут иметь SHA-256. Если этого не сделать - Chrome, например, будет ругаться.

      Удалить
  6. а если 3 сервера в связке с какого нужно начинать обновлять ?

    ОтветитьУдалить
    Ответы
    1. Что за сервера? Web?
      Про какую "связку" идет речь?
      У вас балансировщик нагрузки на входе, или кластер?

      Удалить
    2. Я думаю имеется в виду цепочка серверов со службой CA

      Удалить
  7. Подскажите пожалуйста, если используется аутентификация через смарткарты на которых записаны сертификаты sha-1, после перехода на sha-256, аутентификация нарушится?

    ОтветитьУдалить
  8. А ранее выпущенные сертификаты sha-1 будут работать или сразу станут невалидными после апдейта на sha-256 ?

    ОтветитьУдалить
    Ответы
    1. если их не аннулируете - должны быть валидными

      Удалить