Почему некоторые приложения iphone не заканчивают ssl-рукопожатие с Charles Proxy?

Я использую Charles Proxy, чтобы увидеть весь трафик, который выходит из моего iphone. У меня есть SSL-сертификат/профиль, установленный на моем iphone, и я вижу много трафика, зашифрованного ssl. Однако некоторые приложения, похоже, не заканчивают ssl-рукопожатие.

ошибка: "SSLHandshake: удаленный хост закрыл соединение во время рукопожатия", а затем Charles Proxy предлагает настроить приложение для доверия корневому сертификату Charles. Я думал, что знаю, когда ... установил профиль на мой iphone?

любое объяснение этого / способа исправить это?

2 ответов


есть приложения, которые не просто ожидают, что сертификат подписан одним из доверенных ЦС в системе, но которые ожидают один конкретный сертификат или сертификат, содержащий определенный открытый ключ. Это называется закреплением сертификата/открытого ключа. Для этого приложения он не будет работать, если вы настроите CA Charles Proxy как доверенный в системе, потому что они не будут использовать этот CA.

любое объяснение/способ устранения это?

Если приложение построено так, чтобы доверять только одному сертификату/открытому ключу и никогда не доверять чему-либо только потому, что оно подписано локально доверенным ЦС, тогда вам понадобится исходный сертификат и его закрытый ключ для перехвата SSL. Поскольку у вас их нет, нет способа сделать перехват SSL.


да, закрепление SSL-это возможность, хотя с iOS 10.3 вы должны сделать дополнительный шаг, чтобы доверять корневому сертификату Charles, который в настоящее время не документирован на их веб-сайте:

Settings > General > About > Certificate Trust Testings

источник: https://www.neglectedpotential.com/2017/04/trusting-custom-root-certificates-on-ios-10-3/