Articles of ssl certificate

Предупреждение в Google Play: обработчик WebViewClient.onReceivedSslError

Я получил электронное письмо от Google со следующим вопросом: Google Play Warning: SSL Error Handler Vulnerability". In this email, Google explains that my app has an ["unsafe implementation of the WebViewClient.onReceivedSslError handler" Вот моя реализация метода (WebView Client): public class MyBrowser extends WebViewClient { boolean timeout; public MyBrowser() { timeout = true; } @Override public […]

Когда устанавливать хранилище ключей и когда устанавливать только сертификат, завернутый в хранилище ключей

У меня есть файл PKCS # 12, который я рассматривал как файл хранилища ключей, так как он содержит одну запись ключа и одну запись сертификата . В Android я вижу, что люди программно устанавливают keystore следующим образом (код из блога разработчиков Android ): byte[] keystore = . . (read from a PKCS#12 keystore) Intent installIntent […]

Проверьте метод onReceivedSslError () WebViewClient, если сертификат подписан из определенного самозаверяющего ЦС

Я хотел бы переопределить onReceivedSslError() WebViewClient . Здесь я хочу проверить, подписан ли сертификат error.getCertificate() из самозаверяющего ЦС и только в этом случае вызвать handler.proceed() . В псевдокоде: @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { SslCertificate serverCertificate = error.getCertificate(); if (/* signed from my self-signed CA */) { handler.proceed(); } else { […]

Сертификат не работает с OkHttp на Android

Используя com.squareup.okhttp:okhttp:2.4.0 с com.squareup.retrofit:retrofit:1.9.0 в приложении для Android, пытающийся связаться с сервером REST API через HTTPS, который использует самоподписанный сертификат. У сервера keystore есть закрытый ключ и 2 сертификата, серверный и корневой сертификат. Выход openssl s_client – Certificate chain 0 s:/C=…OU=Dev/CN=example.com i:/C=… My CA/emailAddress=info@example.com 1 s:/C=… My CA/emailAddress=info@example.com i:/C=… My CA/emailAddress=info@example.com В Android-приложении OkHttp инициализируется […]

Comodo SSL: ERR_CERT_AUTHORITY_INVALID на мобильных устройствах Chrome и Opera (Android)

В некоторых мобильных браузерах, таких как Chrome для Android, я получаю ошибку ERR_CERT_AUTHORITY_INVALID, когда я подключаюсь к своему сайту https. У меня нет этой проблемы для всех мобильных браузеров (например, Firefox), и на ПК нет проблем. Мой сертификат является сертификатом Comodo Extended Validation. Я заключу контракт с Gandi.net, французским сертификационным центром SSL, и Gandi отвечает […]

Как программно удалить сертификат, установленный пользователем?

Я установил сертификат программно. Я могу удалить его вручную, перейдя в Settings -> Security -> Trusted Credentials -> User -> Choose the certificate and click the remove button Я хочу программно удалить сертификат. Вот код, который я пробовал, но он не работал. javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes); KeyStore ks = KeyStore.getInstance("AndroidCAStore") if (ks != null) { […]

Как программно добавлять сертификаты в доверительный магазин и использовать их для проверки подлинности сервера

Я мое приложение Я хочу использовать https-соединение с указанным пользователем сервером, который использует самозаверяющий сертификат. Я уже собрал, что Самоподписанные сертификаты отклоняются (как и ожидалось) Андроид keystore / truststore не используется для приложений, поэтому приложения должны создавать и использовать свои собственные магазины доверия, В JDK есть «keytool», чтобы создать доверительный магазин, который может быть предоставлен […]

Как удалить доверенный сертификат CA с установленными приложениями при удалении приложения

У меня есть приложение, которое дает возможность установить CA cert, и оно хранится на вкладке пользователя Trusted Credentials, и оно работает так, как ожидалось. FYI (Вот как я устанавливаю сертификат): Intent installIntent = KeyChain.createInstallIntent(); javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes); installIntent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded()); installIntent.putExtra(KeyChain.EXTRA_NAME,caRootCertName); startActivity(installIntent); Если приложение удалено, сертификат остается в доверенных учетных данных . Я хочу, чтобы […]

Загрузка файла через SSL с помощью клиентского сертификата и HttpsURLConnection от Android

Я пытаюсь загрузить файл в веб-службу, защищенную SSL, и требует сертификат на стороне клиента (подписанный внутренним центром сертификации). Связь с веб-сервисом хорошо работает (загрузка файлов, выполнение запросов, выполнение команд и выполнение всех видов POST-файлов хорошо работают, за исключением загрузки файлов . При загрузке файлов я получаю SSLException (javax.net.ssl.SSLException), в котором говорится: «Ошибка записи: ssl = […]

Безопасное исправление: javax.net.ssl.SSLPeerUnverifiedException: нет однорангового сертификата

Есть десятки сообщений об этой проблеме (javax.net.ssl.SSLPeerUnverifiedException: no peer certificate), но я не нашел ничего, что сработает для меня. Многие сообщения (например, и это ) «решают» это, разрешая принимать все сертификаты, но, конечно, это нехорошее решение для чего угодно, кроме тестирования. Другие кажутся довольно локализованными и не работают для меня. Я очень надеюсь, что у […]