【发布时间】:2016-01-08 08:18:09
【问题描述】:
我正在使用 Fiddler 来监控我们私人项目的 HTTPS 流量。升级到 Windows 10 并安装 Fiddler 后,我无法创建根证书。我尝试同时使用 CertEnroll 和 MakeCert 并且都返回他们无法创建根证书:
09:53:54:2275 Fiddler.CertMaker> [C:\Program Files (x86)\Fiddler2\MakeCert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=由@创建987654321@" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha256 -m 132 -b 01/07/2015 ] 返回错误:创建拦截证书失败。
makecert.exe 返回 -1。
结果来自 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 sha256 -m 132 -b 01/07/2015
错误:无法创建主题的键('JoeSoft') 失败
与
09:43:37:0332 /Fiddler.CertMaker> 为主题调用 CertEnroll:CN=DO_NOT_TRUST_FiddlerRoot,O=DO_NOT_TRUST,OU=由http://www.fiddler2.com 创建; Thread的ApartmentState:MTA 09:43:39:0853 !错误:无法使用 CertEnroll 生成证书。 System.Reflection.TargetInvocationException 调用的目标已引发异常。
每次更改服务时,我都会重置所有证书和/或删除拦截证书。 AppData/Roaming/Microsoft/Crypt/RSA/{LONG_ID} 中的密钥也无处可寻(文件夹始终为空)。
浏览完论坛后,我按照一些说明下载了 Bouncy Castle Certificate Maker(建议用于 Android 的那个),然后那个创建了 2 个根证书并将它们添加到 Windows,这样它们就可以被信任了。这样做之后,我所有的 HTTPS 流量看起来都像带有隧道的 HTTP。在调查这个问题时,我发现在文本视图中它说
“这是一个 CONNECT 隧道,加密的 HTTPS 流量通过该隧道流动。 Fiddler 的 HTTPS 解密功能已启用,但此特定隧道配置为不被解密。可以在工具 > Fiddler 选项 > HTTPS 中找到设置。"
并且记录器返回了以下几个:
“10:02:38:5419 !证书缓存未找到 [server.com] 的证书。将 null 返回到线程 #30。___ 10:02:38:5419 fiddler.https> 无法获取证书server.com 由于 Certificate Maker 在被要求为 server.com 提供证书时返回 null"
“无法为 server.com 创建证书:请求的操作无法完成。必须信任计算机才能进行委派,并且必须将当前用户帐户配置为允许委派。”
在隧道连接的属性中,我找到了
“X-HTTPS-DECRYPTION-ERROR: 无法找到或生成拦截证书。”
你有什么解决办法吗?我真的很感激。谢谢! :)
【问题讨论】: