Реклама показывается только незарегистрированным пользователям. Вход или Регистрация

Добавление "непонравившихся" сертификатов вручную

Проблемы с системой или настройками смартфона на webOS? Тогда Вам сюда

Добавление "непонравившихся" сертификатов вручную

Сообщение Compvir » 28 мар 2011, 12:41

Наверное некоторые уже сталкивались с такой проблеммой. Есть почтовый ssl сертификат, но по каким либо причинам встроенный менеджер сертификатов отказывается его принимать, утверждая, например, что файл не является правильно зашифрованным сертификатом. в моём случае это были кавычки в названии организации выдавшей сертификат, но такая проблема может возникнуть и в других случаях. Причём падал на неправильный сертификат, он уже после удачной проверкой его службой системы на этапе импорта в список.
Поскольку основа webOS это всё-таки ядро линукса то всегда есть способ добавить сертификат вручную.
За сертификаты на Palm Pre/Plus/2 отвечает всем знакомый openssl. Для работы нам потребуется ssh доступ на устройство. Простейший способ - это перевести его в режим разработчика и затем использовать утилиту novaterm, достать которую не предоставляет труда.

Итак, у нас есть инструменты и можно преступать к делу.

1. Сначала сохраняем сертификаты в нужном формате. Об этом написано много где, в том числе и в системе помощи самой webOS. Это должен быть сертификат в формате PEM. При экспорте из Thunderbird он так и называется. В MS продуктах он называется base64-encoded. В принципе это не суть важно. Если непонятно в каком виде сертификат, лучше экспортировать во всех и потом проверить, какой из них был нужный уже в webOS с помощью openssl. Причём нужно экспортировать все сертификаты из дерева сертификатов, а не только необходимый сертификат. Более высокие можно найти в описании самого сертификата.

2. Каким-нибудь образом переписываем файлы на устройство. Будь то через пересылку почты, через скачивание файла из интернета, или просто переписыванием в режиме USB-drive.

3. Далее "заходим" на телефон через novaterm или другим способом (можно даже установленным приложением типа terminus, terminal или secure shell). После "захода" на телефон набираем комманду
Код: Выделить всё
cat /etc/ssl/openssl.cnf
чтобы проверить где должны лежать сертификаты.
Нас интересует строчка
Код: Выделить всё
certs = ...
. На данный момент в Pre 2 это папка
Код: Выделить всё
/var/ssl/certs
.
Именно туда должны будут помещены ссылки на сертификаты, но об этом позже. Пока просто запомним это.

4. Теперь собственно начинаем работать с файлами сертификата. Ищем их в том месте куда переписали (usb-drive это /media/internal/, папка загрузок /media/internal/downloads). меняем папку с помощью комманды cd, например
Код: Выделить всё
cd /media/internal/downloads
.

5. Пусть теперь root.cer это наш корневой сертификат. Получаем его хэш. командой
Код: Выделить всё
openssl x509 -noout -hash -in root.cer
. Если сертификат был в правильном формате, то мы получим строку типа c55fcc6f. Если формат был неправильный, мы получим ошибку unable to load certificate.

6. Необязателен, но желателен. Переписать сертификат внутрь устройства, чтобы случайно его не удалить. Переписывать можно прямо в папку /var/ssl/certs коммандой
Код: Выделить всё
cp root.cer /var/ssl/certs/


7. Теперь собственно самое главное. Создаём символическую ссылку на сертификат с именем <хэш сертификата>.0 (или .1 и т.д. если такой-же сертификат уже есть в папке /var/ssl/certs). Для этого перемещаяемся в папку /var/ssl/certs коммандой
Код: Выделить всё
cd /var/ssl/certs
.

8. Выводим список файлов коммандой
Код: Выделить всё
ls
.

9.
а. Если в выведенном списке нет файла <хэш из пункта 5>.0 то пишем комманду
Код: Выделить всё
ln -s /var/ssl/certs/root.cer <хэш из пункта 5>.0
. Если мы не выполняли перенос файла в пункте 6, то вместо /var/ssl/certs/ нужно будет прописывать полный путь например
Код: Выделить всё
ln -s /media/internal/downloads/root.cer <хэш из пункта 5>.0
.

б. Если в же списке название уже было то заменяем .0 на следующий индекс, которого не было в списке файлов. и проводим те же операции.

10. После этого проверяем, что сертификат установился и работает. Для этого запускаем комманду
Код: Выделить всё
openssl verify -CApath /var/ssl/certs <хэш сертификата>.0
(или индекс, который мы использовали). Должна быть выведена единственная строка OK. Единственной допустимой ошибкой может быть unhandled critical extension для конечного сертификата. Это означает что сертификат не предназначен для такого использования, однако с правильной программой он будет работать.

Все эти шаги необходимо проделать над каждым сертификатом из дерева, начиная с корня. После завершения сертификаты можно считать установленными в системе и работать с почтой.

P.S. Установленные таким образом сертификаты не будут отображаться в списке сертификатов в самой webOS.
--
Главное, не совершить поворот оверкиль.
Мой отец любит говорить: "Дайте пещерному человеку топор и он будет благодарен. Научите пещерного человека делать топор и он будет благодарен всю жизнь"
Самая актуальная версия русификатора клавы

За это сообщение автора Compvir поблагодарили: 4
NIN (28 июл 2015, 15:12), Palmfan (28 мар 2011, 17:59), t-IX (27 ноя 2011, 12:07), Xamil (29 мар 2011, 22:49)
Compvir

 
Сообщения: 327
Зарегистрирован: 25 мар 2011, 17:43
Благодарил (а): 12 раз.
Поблагодарили: 127 раз.
Планшет: HP TouchPad 4G 64GB

Добавление "непонравившихся" сертификатов вручную

Спонсор » 28 мар 2011, 12:41

Реклама показывается только незарегистрированным пользователям. Войти или Зарегистрироваться
Спонсор

 
Сообщения: 100
Зарегистрирован: 15 июл 2014, 18:43
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Добавление "непонравившихся" сертификатов вручную

Сообщение Palmfan » 28 мар 2011, 19:24

Спасибо. Давно хотел разобраться с этим, но как-то руки не доходили.
Palmfan

 
Сообщения: 1581
Зарегистрирован: 30 окт 2010, 21:51
Благодарил (а): 35 раз.
Поблагодарили: 125 раз.

Re: Добавление "непонравившихся" сертификатов вручную

Сообщение sht0rm » 21 ноя 2011, 18:09

На всякий случай добавлю, для 2.1 всего этого выполнять не надо.
Достаточно скинуть сертификат в режиме usb и установить его с помощью Certificate Manager
Device info - Preferences - Certificate Manager.
sht0rm

 
Сообщения: 60
Зарегистрирован: 30 сен 2011, 00:12
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Планшет: HP TouchPad Wi-Fi 16Gb

Re: Добавление "непонравившихся" сертификатов вручную

Сообщение Compvir » 21 ноя 2011, 19:34

sht0rm писал(а):На всякий случай добавлю, для 2.1 всего этого выполнять не надо.
Достаточно скинуть сертификат в режиме usb и установить его с помощью Certificate Manager
Device info - Preferences - Certificate Manager.

На всякий случай поясню, что не всякий сертификат добавляется через Certificate Manager, т.к. неправильно парсится системой из сгенерированного JSON. В частности если в названии организации есть кавычки. Проблема так же осталась и в 3.0.х системах. Думаете я бы стал искать как делается и искать себе геморой на задницу, если бы это было так просто ;-)
--
Главное, не совершить поворот оверкиль.
Мой отец любит говорить: "Дайте пещерному человеку топор и он будет благодарен. Научите пещерного человека делать топор и он будет благодарен всю жизнь"
Самая актуальная версия русификатора клавы
Compvir

 
Сообщения: 327
Зарегистрирован: 25 мар 2011, 17:43
Благодарил (а): 12 раз.
Поблагодарили: 127 раз.
Планшет: HP TouchPad 4G 64GB

Re: Добавление "непонравившихся" сертификатов вручную

Сообщение sht0rm » 22 ноя 2011, 00:40

Спасибо учту. Мой сертификат принял нормально.
sht0rm

 
Сообщения: 60
Зарегистрирован: 30 сен 2011, 00:12
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Планшет: HP TouchPad Wi-Fi 16Gb


Вернуться в webOS-смартфоны - Система и настройки