36

我正在使用 Fiddler2(或尝试)为 Windows 桌面小工具捕获 SSL 流量,以访问 https Web 服务。它曾经可以工作,然后几天前就停止了,总是出现以下错误:

--------------------------- 
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 
------------------------------------------- 

(我从 google 组中刷了 fiddler 的错误,尽管我刚刚发布了自己的错误,应该很快就会看到)。

有没有其他人遇到过这个问题并解决了?Fiddler刚刚坏了吗?

4

12 回答 12

36

在Win7中

  • 所以去这里:C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • 选择所有文件(以 UUIDS 命名)。
  • 将这些文件移动到您的桌面或目录之外的其他文件夹AppData
  • 启动Fiddler,转到Tools| Fiddler Options|Enable HTTPS decryption
  • 看看这次它是否有效(希望如此)。
  • 将文件从它们的临时位置(即Desktop)移回
    原来的位置: C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\
  • 当其中一个文件询问您是否要替换现有文件时,skip它。
于 2012-10-12T04:52:11.513 回答
31

我和其他人都遇到过这个问题。它是密钥存储中已经存在的密钥目录,与 Fiddler 尝试创建的密钥目录同名(可能来自以前版本的 Fiddler)。

我机器上的密钥目录位于:

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

请注意,冲突实际上是关键文件夹名称。我只是重命名了文件夹,然后密钥生成工作正常。

有关更多信息,请参阅此链接:https ://groups.google.com/d/msg/httpfiddler/B-Mu6AxgiIc/LY69rWUBshMJ

于 2011-08-03T21:13:30.777 回答
14

我在我的 Windows 8 机器上遇到了同样的问题。根据@Nicholas-Cloud 手动删除密钥文件对我没有帮助。所以我不断尝试不同的事情,终于能够解决这个问题。

为了解决证书问题,我执行了以下操作:

  1. 在工具->选项->HTTPS 选项卡中,取消选中“解密 HTTPS 流量”选项。这启用了对话框底部的“删除拦截证书”按钮
  2. 单击“删除拦截证书”按钮
  3. 对所有弹出消息说“是”
  4. 重新启用“解密...”选项。
  5. 一系列弹出消息将按照Fiddler Windows 8 配置步骤中的描述进行

注意:如果上述步骤对您没有帮助,请尝试重新安装 Fiddler 并重复这些步骤。在进入 HTTP 选项之前,我确实先重新安装了它。

于 2014-01-17T18:54:19.343 回答
12

fiddler 硬编码命令已过时。

每个人都停止删除文件夹。

只需安装声称会生成“适用于 android 的更好证书”的 fliddler 插件。它在官方提琴手插件列表中。

该插件将为您修复它。

于 2014-10-06T20:07:44.447 回答
8

如果 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\RSA\7b90a71bfc56f2582e916a51aed6df9a_f6d54f4e-ff40-450e-9d77-7cfc383b357 删除该文件的内容并尝试再次生成证书。它应该成功。不要破坏您的整个私钥存储。

于 2012-09-13T11:23:26.363 回答
7

对我来说简单的解决方法是安装Fiddler CertMaker

于 2015-05-11T06:29:19.610 回答
2

尼古拉斯的回答是正确的。为了帮助其他人也找到此页面:

如果您在 Fiddler 中单击“将 Fiddler 根证书导出到桌面”按钮或从代码中调用 Fiddler.CertMaker.createRootCert() 时收到消息“无法导出 Fiddler 的根证书”,这可能会有所帮助。

于 2011-11-18T14:58:57.410 回答
2

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

上面的文件夹仅由 Fiddler 使用,它存储它创建的证书(或至少用于您盒子上的个人证书,Fiddler 肯定是唯一使用它的人)。您可能想检查您是否有除 Fiddler 之外的其他个人证书。在 IE 中,这是使用工具/互联网选项/内容/证书/个人。

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

我想不是只删除 IE 中的所有删除,而是颁发给 DO_NOT_TRUST_FIddlerRoot 的私有证书也是如此,但我没有对此进行测试。

请记住,一旦您不再需要解密选项,请立即关闭它。

于 2011-11-22T16:55:14.643 回答
1

作为 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 的回复中添加评论确实让我可以格式化代码,所以我最终创建了一个单独的回复。

于 2012-06-04T04:45:43.157 回答
1

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

于 2013-04-27T15:00:33.753 回答
0

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

  1. 更新提琴手Core
  2. 正如@DemytroUa 所说'在工具-> 选项-> HTTPS 选项卡中未选中“捕获 HTTPS 连接”选项。然后单击对话框底部的“删除拦截证书”按钮
  3. 打开证书管理器(在运行对话框中输入 certmgr.msc - windows + r)
  4. 导航到个人 -> 证书
  5. 删除所有“DO_NOT_TRUST_FiddlerRoot”证书
  6. 在 Fiddler 上检查“在工具->Fiddler 选项->HTTPS 选项卡中解密 HTTPS 流量

您可能只需要更新 fiddlerCore(有关更多详细信息,请参阅SO 问题),但我列出了我所做的一切以确保完全安全。

于 2014-08-12T02:55:33.847 回答
0

cd 到安装文件夹“d:\Program Files\Fiddler”运行以下命令

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

将创建证书并解决问题

于 2018-10-15T06:54:33.540 回答