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

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

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

Таким образом, мои вопросы:

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

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

ОБНОВЛЕНИЕ

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

1) По некоторым причинам я не мог импортировать сертификат с паролем. Таким образом, я закончил тем, что создал тот это без.

2) То, когда я импортировал .pfx сертификат через IIS, я продолжал получать "Указанную сессию входа в систему, не существует", когда я пытался применить новый сертификат в Привязке Редактирования. Таким образом, я провел мало исследования и нашел это, ТАК ответьте, чтобы быть полезными, конкретно ответ L Mike.

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

Другое примечание, если Вы доверяете проблемы с этим сертификатом, импортирует его в "Доверяемый Корневой центр сертификации" также.

8
задан 23 May 2017 в 15:41
3 ответа

Конечно. Утилита 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 и импортируете его в Сертификаты сервера, затем измените привязки вашего сайта, чтобы использовать новый сертификат.

.
8
ответ дан 2 December 2019 в 22:51

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

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

      [NewRequest]
    
     ;  В этом разделе должно быть установлено хотя бы одно значение
    Subject = "CN = {your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
     ; MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet = false; генерирует новый закрытый ключ (для экспорта)
    Exportable = true; делает закрытый ключ экспортируемым с помощью 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, Сайты -> {si te name} -> Привязки ... (в разделе «Редактировать сайт»). Затем я щелкнул https / 443, потому что он у меня уже был настроен, Edit ... и выбрал новый сертификат из списка.

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

6
ответ дан 2 December 2019 в 22:51

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

Я просто второй раз нажал «ОК», и он принял это предложение.

0
ответ дан 2 December 2019 в 22:51

Теги

Похожие вопросы