Я пытаюсь установить самоподписанный сертификат для своего веб-сервера в Android 4.3. У меня есть файл .crt в корне SD-карты (который на самом деле эмулируется, так как у меня нет SD-карты в слоте).
Для установки сертификата я захожу в Настройки -> Общие -> Безопасность -> Хранилище учетных данных -> Установить из хранилища устройства.
Я получаю диалоговое окно с именем сертификата (имя файла за вычетом расширения .crt), которое я могу изменить (но не могу), «используется для», выбрав «VPN и приложения», с текстом внизу диалога, который сообщает «Пакет содержит: один сертификат пользователя». Все выглядит хорошо, поэтому я нажимаю «ОК». Диалог исчезнет, и появится всплывающее сообщение с «[имя] установлено».
Однако, если я сразу перейду к «Доверенные учетные данные и выберу« Пользователь », там ничего нет! Новый сертификат также не находится под« Системой », но я не ожидаю этого там. Если после этого я захожу в браузер и пытаюсь перейти к своему» веб-сайт, я все еще получаю предупреждение о том, что сертификат сайта не является доверенным. Я также пытался перезагрузиться, но это не имеет значения.
Что я делаю неправильно? Полное отсутствие сообщений об ошибках не помогает. Возможно ли, что мой сертификат имеет неправильный формат? Я попытался использовать файл .crt в каталоге ssl сервера и попытался преобразовать его в формат DER.
Обновление: я где-то читал, что для Android требуются сертификаты в формате p12, поэтому я преобразовал сертификат Apache2 в p12 с помощью следующей команды:
openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12
Затем я повторил описанные выше шаги, получил то же сообщение об успешном завершении, а затем продолжил не видеть сертификат в учетных данных пользователя, и все еще получаю ошибку ненадежного сертификата из мобильного браузера.