Почему некоторые приложения 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/