为啥 ADAL 说证书被拒绝以响应查尔斯代理?

Posted

技术标签:

【中文标题】为啥 ADAL 说证书被拒绝以响应查尔斯代理?【英文标题】:Why is ADAL saying certificate denied in response to Charles proxy?为什么 ADAL 说证书被拒绝以响应查尔斯代理? 【发布时间】:2014-10-12 08:48:28 【问题描述】:

我正在使用 ADAL(第 3 方 OAuth2.0 实施)。我正在尝试使用 Charles 作为代理来收集通信痕迹。 我想象的正在发生的事情(不依赖任何东西):

    ADAL 通过 Charles 向权威机构请求证书 Charles 向权威机构请求证书并将其传递给 ADAL。 ADAL 想向权威机构打开 SSL 通道,但实际上是向 Charles 打开。 Charles 向管理局打开 SSL 通道,并将所有请求/响应转发给 ADAL

但是,ADAL 拒绝颁发机构的证书。 现在据我所知,证书是在未加密的情况下传递的。因此,如果我对上述所有步骤的描述都是正确的,ADAL 怎么知道他正在与之交谈的实体实际上不是他应该与之交谈的权威?

【问题讨论】:

【参考方案1】:

ADAL 并不真正查看授权的证书 - 它检查用于连接到它的通道是否受信任。代理的存在会破坏 SSL 通道信任。如果我想通过 SSL 连接到 www.domain.com,我希望用于建立通道的证书在我受信任的机构中,具有包含 www.domain.com 的主题,仍在其有效期内,等等。我对 Charles 不熟悉,但我猜从 ADAL 的角度来看,它可能看起来像是 DNS 重定向攻击。如果需要进行快速测试,可以在 AuthenticationContext 的构造函数中关闭权限验证,但我强烈建议不要在生产代码中这样做。

HTH 五、

【讨论】:

以上是关于为啥 ADAL 说证书被拒绝以响应查尔斯代理?的主要内容,如果未能解决你的问题,请参考以下文章

没有密码的查尔斯自定义 CA 证书

即使在 iPhone 设备上安装了根证书后,Charles 代理也无法工作

无法安装 Charles SSL 证书

如何在 Charles 中使用应用程序的客户端证书?

为啥 Python 的“请求”拒绝我的 SSL 证书,浏览器接受

Charles设置代理之后,为啥电脑和手机都不能上网?