X509TrustManager в коде тоже был, но пришлось убрать, потому что плей.маркет ругался на использование этой вещи, как небезопасной. Гуглинг и практика нескольких дней показали, что успокоятся они только если вообще убрать этот кусок кода.
>Поэтому на сайте надо выложить не только сам кошерный сертификат, но и всю евойную цепочку тоже. А как это сделать? По каким ключевым искать?
а можно и не прописывать, потому что начиная с какой-то лохматой версии он поддерживает работу в режиме "и сертификат и цепочка упакованы в один файл" и нужно всего лишь добавить цепочку в файл сертификата.
но от отсутствия сего у меня пока ни разу проблем не было.
Как вариант, что сертификат центра сертификации не входит в корневые доверенные именно на на андроиде. Для проверки зайти на этот сайт через браузер андроида и изучите, всё ли там в порядке с сертификатами именно с т.з. браузера андроида
>Недавно админы забыли обновить сертификаты на сервере, просрочили, всё поотвалилось на сайте. Купили, поставили, всё заработало. На сайте.
И да, а что, летс инкрипт использовать не судьба ? Они, конечно, гугловые выкормыши, подлецы, сволочи и мерзавцы, но вот одминов отучают всю эту возню делать руками - на раз.
Только автоматизация, только хардкор. И ничего не "забудется через год" уже никогда :)
Comments 22
Говноприложение не умеет проверить цепочку сертификатов, потому что написано через жопу.
Поэтому на сайте надо выложить не только сам кошерный сертификат, но и всю евойную цепочку тоже.
Reply
>Поэтому на сайте надо выложить не только сам кошерный сертификат, но и всю евойную цепочку тоже.
А как это сделать? По каким ключевым искать?
Reply
Зависит от того, какой там веб-сервер.
Для апача, например, надо в конфиге рядом с самим сертификатом указать и цепочку, вот так:
SSLCertificateKeyFile "${SRVROOT}/cert/domain-key.pem"
SSLCertificateChainFile "${SRVROOT}/cert/domain-chain.pem"
а можно и не прописывать, потому что начиная с какой-то лохматой версии он поддерживает работу в режиме "и сертификат и цепочка упакованы в один файл" и нужно всего лишь добавить цепочку в файл сертификата.
Чтобы проверить эту мою версию, проверьте ваш сайт тут:
https://www.ssllabs.com/ssltest/index.html
https://www.sslshopper.com/ssl-checker.html
если не хватает цепочки, они явно об этом напишут
Reply
есть крохотный шанс, что нужно в DNS домена прописать вот это:
https://blog.qualys.com/product-tech/2017/03/13/caa-mandated-by-cabrowser-forum
но от отсутствия сего у меня пока ни разу проблем не было.
Как вариант, что сертификат центра сертификации не входит в корневые доверенные именно на на андроиде. Для проверки зайти на этот сайт через браузер андроида и изучите, всё ли там в порядке с сертификатами именно с т.з. браузера андроида
Reply
И да, а что, летс инкрипт использовать не судьба ? Они, конечно, гугловые выкормыши, подлецы, сволочи и мерзавцы, но вот одминов отучают всю эту возню делать руками - на раз.
Только автоматизация, только хардкор. И ничего не "забудется через год" уже никогда :)
Reply
Reply
Врач начинает задавать уточняющие вопросы, писать направление на анализы.
И тут вы внезапно отвечаете ему "ну то есть как лечить мою ногу вы тоже не знаете".
занавес.
Да пожалуйста. Как клиент вы перестали быть мне интересны.
Reply
Reply
conn = (HttpsURLConnection) (new URL(mURL)).openConnection();
conn.setConnectTimeout(20000);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
String tempString = toString(conn.getInputStream());
readme!
Еще.
И еще.
Reply
Первоначально код функции выглядел так:
public String getStr(String link ( ... )
Reply
Reply
Reply
Leave a comment