Для среды разработки я могу создать самозаверяющий сертификат в 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):
Создайте текстовый файл в этом каталоге с именем 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
Заменить {your.domain.com}
с адресом, который вы будете использовать для доступа к своему сайту, например "CN=localhost"
certreq -new template.txt RequestFileOut
certutil -store -user my
получить дамп с серийным номером{SERIALNUMBER}
с серийным номером в дампе и {YOURDER}.crt
с именем выходного файла: certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
{YOURDER}.crt
с именем входного файла и {YOURPEM}.cer
с именем выходного файла: certutil -encode {YOURDER}.crt {YOURPEM}.cer
{your.domain.com}
с вашим фактическим (тестовым) доменным именем и {YOURPKCS}.pfx
с именем выходного файла: certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain
После этого я перешел в диспетчер IIS, Сайты -> {имя сайта} -> Привязки ... (в разделе «Изменить сайт»). Затем я щелкнул https / 443, потому что он у меня уже был настроен, Edit ... и выбрал новый сертификат из списка.
Firefox пожаловался, что мой сайт использует самозаверяющий сертификат, поэтому я просто добавил его как исключение, и вуаля! это сработало!
Да, я тоже получил сообщение об ошибке / предупреждении «Указанный сеанс входа в систему не существует».
Я просто щелкнул «ОК» во второй раз, и он согласился.