一般来说,这不是关于证书固定的问题。
我正在编写一个利用适用于 iOS 的 Microsoft Azure SDK 的 iOS 应用程序。他们没有实现证书固定,所以我已经下载了完整的 SDK,我正在修改它以添加我自己的固定。
我正在遵循 OWASP 给出的示例代码。它要求我在终端中执行以下代码:
$ echo "Get HTTP/1.0" | openssl s_client -showcerts -connect www.random.org:443
我已经运行了它,换成了我{url}.azurewebsites.net
的 for www.random.org
。我得到了一个很好的输出,列出了几个证书。
根据 OWASP 代码,看来我应该使用这个:
Certificate chain
0 s:/CN=*.azurewebsites.net
i:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/OU=Microsoft IT/CN=Microsoft IT SSL SHA2
我对此感到担心的是,CN
is 用于通配符*.azurewebsites.net
。这是否意味着如果我使用此证书并且有人尝试使用另一个 Azure Web 应用程序进行中间人攻击,那么该证书固定对他们来说会成功,从而无法保护我的应用程序?
例如,如果我的应用程序是 atabc.azurewebsites.net
并且中间人攻击是从 运行的xyz.azurewebsites.net
,我的应用程序会知道阻止请求吗?