运行 Fiddler4 与 SSIS 一起解密 HTTPS 时出错

Error when running with Fiddler4 and decrypting HTTPS alongside SSIS

我目前正在使用 SSIS 连接到 Microsoft Project Online(基于云)数据库并将数据传输到本地 SQL 服务器数据库。问题是 SSIS 包在未 运行ning Fiddler4 时按预期执行。

在与 MS 技术人员进行故障排除时,有人要求我们捕获 Fiddler 跟踪并解密 HTTPS 流量。过去几个月我们能够做到这一点,但最近,它会导致 SSIS 包失败并出现以下错误:

"Cannot acquire a managed connection from the run-time connection manager."

我已经按照说明删除证书几次,以及其他一些网络建议,但问题仍然存在。我们正处于 MS 无法进一步排除故障的地步,除非我能捕捉到痕迹。

完整错误:

信息:TimeSet 处的 0x4004300A,SSIS.Pipeline:验证阶段开始。 错误:TimeSet 处的 0xC020801F,OData 源 [2]:无法从 运行 时间连接管理器获取托管连接。 错误:TimeSet 处的 0xC0047017,SSIS.Pipeline:OData 源验证失败并返回错误代码 0xC020801F。 错误:TimeSet 处的 0xC004700C,SSIS.Pipeline:一个或多个组件验证失败。 错误:TimeSet 处的 0xC0024107:任务验证期间出现错误。

感谢所有帮助!

编辑:浏览了我的 CA 商店,发现 FiddlerRoot 不在受信任的 CA 列表中。尝试在我的安全存储中显式导入 CA 证书,但该证书仍未显示在受信任列表中。证书被命名为(出于某种原因)DO_NOT_TRUST_FiddlerRoot。如果 CA 被标记为不可信,这可能是我所看到的一部分吗?

稍微退一步:Fiddler 根证书始终称为 DO_NOT_TRUST_FiddlerRoot,它的名称对任何内容都没有影响(UI 中显示的除外)。

Fiddler 是否正确地从您的网络浏览器收集 HTTPS 流量?

如果是这样,对于这里发生的事情有多种可能的解释,但最有可能的是 Fiddler 根证书不受使用该连接的进程的信任;例如,默认情况下,Fiddler 仅尝试信任 per-user 证书存储中的根证书,但有时 运行 位于不同的用户帐户(例如服务帐户)中,因此必须放置根证书在 per-machine 证书存储中。

您可以尝试以下方法:

  1. 在 Fiddler 的工具 > Fiddler 选项 > HTTPS 选项卡中,单击将根证书导出到桌面。
  2. 启动mmc.exe。
  3. 单击文件 > Add/Remove 管理单元。
  4. Select 证书管理单元并按添加。
  5. 出现提示时此管理单元将始终管理以下证书:选择计算机帐户
  6. 单击“本地计算机”,然后单击“完成”,然后单击“确定”。
  7. 打开证书(本地计算机)节点。
  8. 右键单击“受信任的根证书颁发机构”文件夹并选择“所有任务”>“导入”。
  9. 选择您在步骤 #1 中导出的文件并导入它。