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