fiddler2无法生成证书

时间:2011-04-01 22:13:32

标签: https fiddler makecert

我正在使用Fiddler2(或尝试)来获取点击https网络服务的Windows桌面小工具的SSL流量。它曾经工作过,然后它在几天前停止了,总是出现这个错误:

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

(我从谷歌小组那里刷了一下小提琴手的错误,虽然我刚发布了自己的错误但很快就会看到它。)

还有其他人有这个问题并解决了吗? Fiddler刚破了吗?

12 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:14)

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

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

  1. 在工具中 - &gt;选项 - &gt; HTTPS标签取消选中“解密HTTPS流量”选项。这启用了对话框底部的“删除拦截证书”按钮
  2. 点击“删除拦截证书”按钮
  3. 对所有弹出消息说“是”
  4. 启用“解密...”选项。
  5. 系列弹出消息将按照Fiddler Windows 8 Configuration Steps
  6. 中的说明进行操作

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

答案 3 :(得分:12)

fiddler hardcoded命令已过期。

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

只需安装fliddler插件,该插件声称会生成“与android兼容的更好的证书”。它在官方提琴手插件列表中。

该插件会为您修复它。

答案 4 :(得分: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之类的内容 删除该文件并再次尝试生成证书。它应该成功。 会破坏整个私钥存储。

答案 5 :(得分:7)

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

答案 6 :(得分:2)

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

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

答案 7 :(得分:2)

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

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

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

我认为不是只删除IE中发送给DO_NOT_TRUST_FIddlerRoot的私有证书,而是我没有测试过。

请记得在您不再需要它时立即关闭解密选项。

答案 8 :(得分: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的回复中添加评论确实允许我格式化代码,所以我最终创建了一个单独的回复。

答案 9 :(得分:1)

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

答案 10 :(得分:0)

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

  1. 正在更新fiddlerCore
  2. 由于@DemytroUa说'在工具 - &gt;选项 - &gt; HTTPS标签取消选中“捕获HTTPS连接”选项。然后单击对话框“
  3. ”底部的“删除拦截证书”按钮
  4. 打开证书管理器(在运行对话框中输入certmgr.msc - windows + r)
  5. 导航至个人 - &gt;证书
  6. 删除所有“DO_NOT_TRUST_FiddlerRoot”证书
  7. 在Fiddler上检查“解密工具中的HTTPS流量 - &gt; Fiddler选项 - &gt; HTTPS标签
  8. 您可能只需更新fiddlerCore(有关详细信息,请参阅this SO问题),但我列出了我所做的一切,以确保完全安全。

答案 11 :(得分: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

将创建证书并解决问题