我正在使用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 =由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]返回错误:拦截证书的创建失败.
makecert.exe返回-1.
结果来自C:\ Program Files(x86)\ Fiddler2\MakeCert.exe -r -ss my -n"CN = DO_NOT_TRUST_FiddlerRoot,O = DO_NOT_TRUST,OU =由http://www.fiddler2.com创建"-sky签名 - 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}
也无处可寻(文件夹始终为空).通过论坛浏览后,我跟着一些指令和下载的充气城堡制造商证明书(一建议Android)和一个创建2个证书并将其添加到Windows所以他们将被信任.执行此操作后,我的所有HTTPS流量都看起来像带有隧道的HTTP.在研究这个问题时,我发现在文本视图中它说
"这是一个CONNECT隧道,加密的HTTPS流量通过该隧道流动.Fiddler的HTTPS解密功能已启用,但此特定隧道配置为不解密.可在工具>提琴选项> HTTPS中找到设置."
并且记录器返回以下几项:
"10:02:38:5419!证书缓存找不到[server.com]的证书.返回null到线程#30.___ 10:02:38:5419 fiddler.https>无法获得server.com的证书由于证书制造商在被要求获取server.com证书时返回null"
"无法为server.com创建证书:无法完成所请求的操作.必须信任计算机以进行委派,并且必须将当前用户帐户配置为允许委派."
我发现,在隧道连接的属性中
"X-HTTPS-DECRYPTION-ERROR:无法找到或生成拦截证书."
你有什么解决方案吗?我真的很感激.谢谢!:)
好吧,似乎最终它是一个Windows问题.我的PC是公司Domain的一部分,即使我的用户是这台PC的管理员,也不是一切都完全正常运行(例如我可以作为管理员运行任何没有问题的应用程序,但无法创建根证书).我的同事在Windows凭据管理器中找到了该问题,并使用以下注册条目(.reg)修复了该问题:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb] "ProtectionPolicy"=dword:00000001
我希望这可以帮助有人避免在互联网上搜索数小时进行修复.