Android Studio: сертификату сервера не доверяют
Можно ли игнорировать это предупреждение? Он появляется, когда я создаю новый проект в Android Studio:
Server certificate is not trusted
Certificate details
Issued To
CN (Common Name) *.google.com
O (Organization) Google Inc
L (Locality) Mountain View
C (Country) US
ST (State or Province) California
Issued By
CN (Common Name) Google Internet Authority G2
O (Organization) Google Inc
C (Country) US
Validity Period
Valid from: 9/24/14
Valid until: 12/23/14
...
Дата выглядит хорошо, и я точно проверил настройки своих компьютеров. Почему еще это было бы "не доверено"?
Ответы
Ответ 1
Android Studio имеет конфигурацию для сертификатов сервера (это работает для других платформ IntelliJ, таких как PyCharm)
Перейдите в Файл- > Настройки. В разделе Параметры IDE выберите Сертификаты сервера
Я сам выбрал флажок Принять автоматически, нажмите "Применить" и никогда не должен был с ним справляться. Если вы беспокоитесь о безопасности, есть возможность добавить их по одному, когда они появятся.
В моем случае я сделал это, потому что у меня уже был сертификат *.google.com, настроенный как принятый, но у меня все еще есть всплывающее окно. Я подозреваю, что отпечаток пальца изменился, и если бы я удалил, а затем принял ошибку, ушел бы, но я решил просто убрать его, установив флажок.
Ответ 2
Нельзя игнорировать это предупреждение. Кто-то может попытаться атаковать "человек-в-середине" поддельным сертификатом, чтобы установить вредоносное ПО на ваш компьютер с помощью процесса обновления. Это, вероятно, не происходит, но всегда лучше делать все правильно, когда дело доходит до безопасности.
Вместо этого вы должны добавить корневые сертификаты, которым вы доверяете, в хранилище ключей Android Studio. Местоположение и пароль по умолчанию хранилища ключей должны быть указаны в нижней части этого предупреждения. Например, мой имеет значение ~/Library/Caches/AndroidStudio/tasks/cacerts
. Затем вам нужно будет найти корневой сертификат в цепочке, которую представляет сервер. К сожалению, предупреждение не перечисляет всю цепочку, поэтому для ее поиска требуется небольшая работа. Сертификат Google Internet Authority G2
- тот же, который используется для подписания сертификатов для сайтов Google. Вы можете просмотреть цепочку в Chrome, перейдя на google.com, нажав зеленую блокировку, а затем "Информация сертификата" на вкладке подключения. На этом этапе вы можете проверить, что хеши в предупреждении соответствуют хэшам для реального сертификата G2. Вы также увидите, что корневой сертификат имеет имя Equifax Secure Certificate Authority
. Вы можете загрузить его из https://www.geotrust.com/resources/root-certificates/. Затем вам нужно добавить его в хранилище ключей:
keytool -import -alias equifaxca \
-file Equifax_Secure_Certificate_Authority.pem -keystore cacerts
Наконец, перезапустите Android Studio. Это предупреждение не должно появляться до 22 августа 2018 года, если только кто-то не представляет фальшивый сертификат.
Ответ 3
Для операционной системы Mac она находится в меню Android Studio- > Preferences- > Tools- > Server Certificates.
В верхней части правого бокового окна установите флажок "Принять неопознанные сертификаты" автоматически. Хит применяется и нормально.
Ответ 4
Я столкнулся с этой проблемой после добавления репозитория maven с SSL-сертификатом, подписанным нестандартным центром сертификации (CA).
Когда я запускал сборку gradle для моего проекта из командной строки, все работало нормально (я добавил пользовательский CA в свои установочные Java-машины). Однако у меня были проблемы с запуском сборки из Android-студии, и я получал такие ошибки:
> Could not resolve joda-time:joda-time:2.9.9.
> Could not get resource 'https://custom-maven-repo.com/repository/releases/joda-time/joda-time/2.9.9/joda-time-2.9.9.pom'.
> Could not GET 'https://custom-maven-repo.com/repository/releases/joda-time/joda-time/2.9.9/joda-time-2.9.9.pom''.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> unable to find valid certification path to requested target
Я скачал файл pem
для пользовательского центра сертификации, который называется my-ca.pem
. Я пытался добавить это в Android Studio в Настройки → Инструменты → Сертификаты сервера, но это не помогло.
Я заметил, что Android Studio использует встроенный JDK (Файл → Структура проекта → Местоположение SDK → Местоположение JDK) в /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
. Чтобы получить сертификат, я выполнил (в Mac OS X) эти команды, чтобы добавить сертификат, а затем завершил Java-процесс Android Studio:
/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -import -alias my-ca -keystore /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -file path/to/my-ca.pem -noprompt
kill -9 $(ps -A | grep java | grep "Android Studio" | grep -v grep | awk '{print $1}')
Запустил сборку Gradle из Android Studio.
Альтернативное решение - настроить Android Studio для использования пользовательского JDK, используемого на вашем компьютере, на котором установлен сертификат CA, с помощью меню Файл → Структура проекта → Расположение SDK → Расположение JDK.
Ответ 5
Начиная с AndroidStudio 1.5.1 Вы можете перейти в Настройки → Сервис → Сертификаты сервера и нажать кнопку +, чтобы вручную добавить сертификаты, которым следует доверять.
Ответ 6
Отсутствует системный сертификат для Java. Если вы используете Ubuntu и Oracle JRE/JDK, установите пакет ca-certificates-java.
Ответ 7
Android Studio имеет конфигурацию для сертификатов сервера.
Просто следуйте этим шагам -
Перейдите на File-> Настройки. В разделе Инструменты выберите Сертификаты сервера.
Я сам установил флажок " Принимать недоверенные сертификаты автоматически", нажал "Применить" и никогда не сталкивался с этим.
Ответ 8
Ни один из ответов не помог мне, так что, надеюсь, это поможет кому-то еще.
Перезапуск моей машины помог мне. (Когда сомневаешься, верно?)