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手动删除密钥文件并没有帮助我。 所以我一直在尝试不同的东西,最后能够把它解决。
为了解决证书问题,我做了以下工作:
- 在工具 – >选项 – > HTTPS选项卡中取消选中“解密HTTPSstream量”选项。 这使对话框底部的“删除拦截证书”button
- 点击“删除拦截证书”button
- 对所有popup消息说“是”
- 启用“解密…”选项。
- 系列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”来识别冲突的文件。
我有这个确切的错误,只能通过以下方式解决:
- 更新fiddlerCore
- 由于@DemytroUa说'在工具 – >选项 – > HTTPS选项卡取消选中“捕获HTTPS CONNECTSs”选项。 然后点击对话框底部的“删除拦截证书”button
- 打开证书pipe理器(在运行对话框中inputcertmgr.msc – windows + r)
- 导航到个人 – >证书
- 删除所有“DO_NOT_TRUST_FiddlerRoot”证书
- 在提琴手检查“解密HTTPSstream量在工具 – >提琴手选项 – > HTTPS选项卡
有可能你只需要更新fiddlerCore(更多细节见这个问题),但是我列出了我所做的一切是完全安全的。