Назад | Перейти на главную страницу

Как я могу создать самозаверяющий сертификат, который сильнее SHA-1?

Для среды разработки я могу создать самозаверяющий сертификат в IIS7.5. Но этот сертификат - SHA-1, и в последнее время браузеры жалуются на него. Когда я открываю FireBug, я вижу следующие предупреждения:

«Этот сайт использует сертификат SHA-1; рекомендуется использовать сертификаты с алгоритмами подписи, которые используют более сильные хэш-функции, чем SHA-1».

Итак, мои вопросы:

1) Есть ли способ создать самозаверяющий сертификат, который сильнее SHA-1?

2) Если нет, есть ли способ запретить браузеру показывать эти предупреждения?

ОБНОВИТЬ

В итоге я использовал ответ @vcsjones, но до сих пор меня это достало. Вот пара вопросов, которые я должен был решить, прежде чем заставить его работать.

1) По какой-то причине мне не удалось импортировать сертификат с паролем. В итоге я создал один без него.

2) Когда я импортировал сертификат .pfx через IIS, я продолжал получать «Указанный сеанс входа в систему не существует», когда я пытался применить новый сертификат в Edit Bindings. Я провел небольшое исследование и обнаружил, что ТАК ответ чтобы быть полезным, в частности, ответ Майка Л.

Еще я хотел бы добавить, что при импорте сертификата не забудьте выбрать сертификат .pfx. Мастер импорта по умолчанию выбрал * .cer, который вы можете импортировать (я допустил ошибку), но тогда я не смог увидеть сертификат в сертификатах сервера IIS. Когда я присмотрелся, на значке не хватало маленькой клавиши. Теперь я исследовал, что смог восстановить его с помощью KB-889651 статья. Поэтому убедитесь, что вы импортировали .pfx, и он будет работать без восстановления.

Еще одно примечание: если у вас возникли проблемы с доверием к этому сертификату, также импортируйте его в «Доверенный корневой центр сертификации».

Конечно. В makecert Утилита, входящая в состав Windows SDK, может:

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

В -a Параметр задает алгоритм хеширования. Это выдаст PVK и файл DER .cer. Конечно, вы также можете изменить общее имя на любое другое, я просто использовал в качестве примера localhost. Вы можете объединить их в PFX (что IIS предпочитает использовать при импорте сертификата), используя pvk2pfx (также является частью SDK):

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

Это просто берет два файла makecert сгенерированы и объединены в файл PKCS12 .pfx.

С полученным файлом PFX вы должны открыть IIS и импортировать его в разделе «Сертификаты сервера», а затем изменить привязки вашего сайта, чтобы использовать новый сертификат.

Я использую заблокированный компьютер с Windows 7 Enterprise на работе, и поэтому я не могу установить Windows SDK, чтобы получить доступ к makecert. Вот как я создал свой самозаверяющий сертификат sha256 (взят из https://core.telegram.org/bots/self-signed):

  1. Решите, в каком каталоге вы хотите сохранить сертификат.
  2. Создайте текстовый файл в этом каталоге с именем template.txt со следующим содержанием:

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. Заменить {your.domain.com} с адресом, который вы будете использовать для доступа к своему сайту, например "CN=localhost"

  4. Откройте командную строку и перейдите в каталог сертификатов.
  5. Бегать certreq -new template.txt RequestFileOut
  6. Вам нужно знать серийный номер, поэтому запустите certutil -store -user my получить дамп с серийным номером
  7. Заменить {SERIALNUMBER} с серийным номером в дампе и {YOURDER}.crt с именем выходного файла: certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. Заменить {YOURDER}.crt с именем входного файла и {YOURPEM}.cer с именем выходного файла: certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. Заменить {your.domain.com} с вашим фактическим (тестовым) доменным именем и {YOURPKCS}.pfx с именем выходного файла: certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

После этого я перешел в диспетчер IIS, Сайты -> {имя сайта} -> Привязки ... (в разделе «Изменить сайт»). Затем я щелкнул https / 443, потому что он у меня уже был настроен, Edit ... и выбрал новый сертификат из списка.

Firefox пожаловался, что мой сайт использует самозаверяющий сертификат, поэтому я просто добавил его как исключение, и вуаля! это сработало!

Да, я тоже получил сообщение об ошибке / предупреждении «Указанный сеанс входа в систему не существует».

Я просто щелкнул «ОК» во второй раз, и он согласился.