fiddler2无法生成证书

我正在使用Fiddler2(或尝试)来捕获一个Windows桌面小工具击中HTTPSnetworking服务的SSLstream量。 它曾经工作过,然后几天前就停了,总是出现这个错误:

--------------------------- Unable to Generate Certificate --------------------------- Creation of the interception certificate failed. makecert.exe returned -1. Results from C:\Program Files\Fiddler2\MakeCert.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 ------------------------------------------- 

(我把swipe来自谷歌的小提琴手的错误,虽然我只是张贴我自己的,它应该很快可见)。

有没有其他人有这个问题,并解决了它? 小提琴刚刚坏了吗?

在Win7中

  • 所以去这里: C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • select所有文件(以UUIDS命名)。
  • 将这些文件移动到AppData目录之外的桌面或其他文件夹。
  • 启动Fiddler ,转到Tools | Fiddler Options | Enable HTTPS decryption
  • 看到这个工作(希望)。
  • 将文件从临时位置(即Desktop )移回,
    到他们原来的: C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • 当其中一个文件询问你是否要replace现有的, skip它。

我和其他人有这个问题。 这是密钥存储中已经存在的密钥目录,其名称与Fiddler试图创build的密钥目录(可能来自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. 在工具 – >选项 – > HTTPS选项卡中取消选中“解密HTTPSstream量”选项。 这使对话框底部的“删除拦截证书”button
  2. 点击“删除拦截证书”button
  3. 对所有popup消息说“是”
  4. 启用“解密…”选项。
  5. 系列popup消息将按照Fiddler Windows 8configuration步骤中的描述进行操作

注意:如果上述步骤对您没有帮助,请尝试重新安装Fiddler并重复这些步骤。 我之前已经重新安装了它,然后到达HTTP选项。

fiddler hardcoded命令已过时。

大家不要删除文件夹。

只要安装fliddler插件,声称产生一个“更好的证书,与Android的作品”。 它在官方的小提琴手插件列表中。

该插件将为您解决它。

如果小提琴手证书生成失败,正确的解决办法是手工挑选现有的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/3637find证书私钥的工具。;

运行:

 Get-PrivateKeyPath CN=DO_NOT_TRUST_FiddlerRoot 

它将返回类似于c:\Users\JoeUser\AppData\Roaming\Microsoft\Crypto\RSA\7b90a71bfc56f2582e916a51aed6df9a_f6d54f4e-ff40-450e-9d77-7cfc383b357删除该文件并尝试再次生成证书。 它应该成功。 不要摧毁你的整个私人密钥存储。

简单的解决方法是安装Fiddler CertMaker

尼古拉斯的回答是正确的。 为了帮助别人也find这个页面:

如果您在Fiddler中单击“导出Fiddler根证书到桌面”button,或者从代码调用Fiddler.CertMaker.createRootCert()时收到消息“Unable to export Fiddler's Root Certificate”,这可能会有所帮助。

我有同样的错误。 这当然是由于Fiddler早期版本的存在以及它们之间的一些不兼容。

上面的文件夹只能由Fiddler使用,它存储它创build的证书(或者至less对于你的盒子上的个人证书而Fiddler肯定是唯一使用它的)。 你可能想要检查你是否有其他的个人证书而不是提琴手。 在IE中这是使用工具/互联网选项/内容/证书/个人。

完全清空文件夹,不要害怕删除系统文件的消息。 然后在Fiddler中,再次select要捕获的选项,然后解密HTTPS通信。 如果需要,在桌面上重新导出Fiddler根证书然后重新导入它在IE和FF。 重新启动您的浏览器,如果需要和享受。

我想,而不是删除所有只在IE中删除的私人证书颁发给DO_NOT_TRUST_FIddlerRoot做相同,但我没有testing过这一点。

请记住在您不再需要时立即closures解密选项。

作为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" 

在Nicholas的回复中添加评论确实让我可以格式化代码,所以我最终创build了一个单独的答复。

您可以通过从C:\ Users \\ AppData \ Roaming \ Microsoft \ Crypto \ RSA \path中的文件内容中查找“JoeSoft”来识别冲突的文件。

我有这个确切的错误,只能通过以下方式解决:

  1. 更新fiddlerCore
  2. 由于@DemytroUa说'在工具 – >选项 – > HTTPS选项卡取消选中“捕获HTTPS CONNECTSs”选项。 然后点击对话框底部的“删除拦截证书”button
  3. 打开证书pipe理器(在运行对话框中inputcertmgr.msc – windows + r)
  4. 导航到个人 – >证书
  5. 删除所有“DO_NOT_TRUST_FiddlerRoot”证书
  6. 在提琴手检查“解密HTTPSstream量在工具 – >提琴手选项 – > HTTPS选项卡

有可能你只需要更新fiddlerCore(更多细节见这个问题),但是我列出了我所做的一切是完全安全的。