может стать использование программы Fiddler2 не в состоянии генерировать сертификат

Я использую Fiddler2 (или пытаюсь) для захвата трафика SSL для настольного гаджета windows, поражающего веб-службу https. Раньше он работал, а потом остановился пару дней назад, всегда с этой ошибкой:

--------------------------- 
Unable to Generate Certificate 
--------------------------- 
Creation of the interception certificate failed. 
makecert.exe returned -1. 
Results from C:Program FilesFiddler2MakeCert.exe -ss my -n 
"CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by 
http://www.fiddler2.com" -eku 1.3.6.1.5.5.7.3.1 -r -cy authority -a 
sha1 
Error: Can't create the key of the subject ('JoeSoft') 
Failed 
------------------------------------------- 

(Я провел ошибку из группы google для fiddler, хотя я только что опубликовал свой собственный, и он должен быть виден в ближайшее время).

кто-нибудь имел эту проблему и решить ее? Это Fiddler просто сломался?

11 ответов


В Win7

  • Так иди сюда: C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • выберите все файлы (с именем UUIDS).
  • переместить эти файлы на рабочий стол или другую папку за пределами AppData реж.
  • запуск Саша перейдите к Tools | Fiddler Options | Enable HTTPS decryption
  • смотрите, что он работает на этот раз (надеюсь).
  • переместите файлы обратно из их временного местоположения (т. е. Desktop),
    их оригинал: C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • когда один из файлов спрашивает Хотите ли вы заменить существующий, skip его.

У меня и других была эта проблема. Это каталог ключей, который уже существует в хранилище ключей с тем же именем, что и каталог ключей, который пытается создать Fiddler (возможно, из предыдущей версии Fiddler).

каталог ключей на моей машине находится в:

C:\Users\[username]\AppData\Roaming\Microsoft\Crypto\RSA\[folder-with-big-name]\

обратите внимание, что конфликт на самом деле был именем ключевой папки. Я просто переименовал папку, а затем генерация ключей работала нормально.

см. эту ссылку для получения дополнительной информации: https://groups.google.com/d/msg/httpfiddler/B-Mu6AxgiIc/LY69rWUBshMJ


У меня была такая же проблема на Windows 8 окно. Ручное удаление ключевых файлов на @Nicholas-Cloud не помогло мне. Поэтому я продолжал пробовать разные вещи и, наконец, смог разобраться в этом.

чтобы решить проблему с сертификатом, я сделал следующее:

  1. in Tools->Options->HTTPS tab снимите флажок "расшифровать трафик HTTPS". Это включило кнопку "Удалить сертификаты перехвата" в нижней части диалогового окна
  2. нажмите " Удалить Кнопка" сертификаты "перехват"
  3. сказал "Да" на все всплывающие сообщения
  4. включено "расшифровать...- вариант назад.
  5. серия всплывающих сообщений будет следовать, как описано в Fiddler Windows 8 Шаги Настройки

Примечание: Если вышеуказанные шаги не помогут вам, попробуйте переустановить Fiddler и повторить шаги. Сначала я переустановил его, прежде чем перейти к параметрам HTTP.


команда fiddler hardcoded устарела.

все удаление папки.

просто установите плагин fliddler, который утверждает, что генерирует "лучший сертификат, который работает с android". его в официальном списке плагинов fiddler.

этот плагин исправит это для вас.


Если не удается создать сертификат Fiddler, правильное исправление-вручную выбрать существующий закрытый ключ Fiddler2 и удалить его. Приведенный выше код PowerShell для полного уничтожения хранилища закрытых ключей пользователя-очень плохая идея. Это сделает каждый личный сертификат бесполезным.

подтвердите проблему, выполнив ту же команду Fiddler2:

cd "C:\Program Files (x86)\Fiddler2"
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

при сбое генерации сертификата необходимо удалить существующий закрытый ключ. Видеть http://poshcode.org/3637 для инструмента, чтобы найти закрытый ключ для сертификата.

запустить его:

Get-PrivateKeyPath CN=DO_NOT_TRUST_FiddlerRoot

он вернет что-то вроде c:\Users\JoeUser\AppData\Roaming\Microsoft\Crypto\RSAb90a71bfc56f2582e916a51aed6df9a_f6d54f4e-ff40-450e-9d77-7cfc383b357 Удалите этот файл и повторите попытку создания сертификата. Она должна увенчаться успехом. Do не уничтожить весь ваш секретный ключ магазина.


простое исправление для меня было установить Скрипач CertMaker


Николас ответил правильно. Чтобы помочь другим найти эту страницу:

Это может быть полезно, если вы получаете сообщение "невозможно экспортировать корневой сертификат Fiddler", когда вы нажимаете кнопку "Экспорт корневого сертификата Fiddler на рабочий стол" в Fiddler или вызываете Fiddler.CertMaker.createRootCert () из кода.


У меня была такая же ошибка. Это, безусловно, было связано с наличием более ранних версий Fiddler и некоторой несовместимостью между ними.

вышеуказанная папка используется только Fiddler, где он хранит сертификаты, которые он создает (или, по крайней мере, для личных сертификатов на вашем ящике, и Fiddler, безусловно, единственный, кто его использует). Вы можете проверить, есть ли у вас другие личные сертификаты, кроме Fiddler. В IE это использует инструменты / Свойства обозревателя / контент / сертификаты / личный.

полностью опустошите папку и не бойтесь сообщения об удалении системных файлов. Затем в Fiddler снова выберите параметры для захвата, а затем расшифруйте трафик HTTPS. При необходимости повторно экспортируйте корневой сертификат Fiddler на рабочий стол, затем повторно импортируйте его в IE и FF. При необходимости перезапустите браузеры и наслаждайтесь.

Я полагаю, что вместо удаления всего этого удаления только в IE частный сертификат, выданный DO_NOT_TRUST_FIddlerRoot, делает то же самое но я не проверял это.

Не забудьте отключить опцию расшифровки, как только вам это больше не нужно.


в дополнение к ответу Nicholas Cloud, вот небольшой скрипт, который поможет вам переименовать эту папку:

# Find my SID 
$user = New-Object System.Security.Principal.NTAccount([Environment]::UserName) $mySID = ($user.Translate([System.Security.Principal.SecurityIdentifier])).Value

# Rename keys folder with a timestamp
$timeStamp = Get-Date -format "ddMMyyhhmmss"
$folder = Join-Path -Path $env:USERPROFILE -ChildPath "appData\Roaming\Microsoft\Crypto\RSA$mySID"
Rename-Item -Force $folder "$folder.$timeStamp"

добавление комментария к ответу Николаса позволило мне отформатировать код, поэтому я создал отдельный ответ.


вы можете определить конфликтующий файл, ища "JoeSoft" в содержимом файлов из C:\Users\\AppData\Roaming\Microsoft\Crypto\RSA \ путь.


У меня была эта точная ошибка и я смог решить ее только:

  1. обновление в описании fiddlercore
  2. как @DemytroUa сказали в Сервис->Параметры->вкладку https снят "захвате вариант CONNECTSs" протокол HTTPS. И нажав кнопку "Удалить сертификаты перехвата" в нижней части диалогового окна"
  3. Открытие диспетчера сертификатов (введите certmgr.msc в диалоговом окне запуска-windows + r)
  4. перейдите в личные -> Сертификаты
  5. удаление всех сертификатов "DO_NOT_TRUST_FiddlerRoot"
  6. на проверку скрипача " расшифровать HTTPS-трафик в инструментах - > параметры скрипача - > вкладка HTTPS

возможно, вам нужно только обновить fiddlerCore (см. этой так вопрос для более подробной информации), но я перечислил все, что я сделал, чтобы быть в полной безопасности.