Android - работа със ssl сертификати (как да организирам прехвърлянето на данни през HTTPS) - Моите ИТ бележки
Ами ако трябва да получавате данни в android чрез защитена https връзка? Защо се генерира грешката SSLException: Неуверен сертификат на сървър ? Как да добавите сертификат от сървъра към локалното хранилище на ключове на устройство с Android? Ако се притеснявате от тези въпроси, ще намерите полезни инструкции за инсталиране на ssl сертификати и фрагмент от код за зареждането им във вашето приложение за Android.
1. Как да разберете какъв вид сертификат се използва от сървъра (на Linux/Mac Os - като правило пакетът openssl е предварително инсталиран, за Windows - действителни връзки в раздела за двоични файлове) там):
openssl s_client -connect:
за самоподписани сертификати нещо като:
ако се използва сертификат, подписан от трета компания, координатите ще се покажат, където можете да получите публичен сертификат
2. Създайте файл със сертификат
И). За самоподписан сертификат:
1. създайте празен файл my-certificate-file.pem
2. копирайте кодираните данни за сертификат в нов файл:
да, етикетите за отваряне/затваряне трябва да бъдат.
Ако сертификатът е самоподписан, можете да използвате дадения баш скрипт
ехо | openssl s_client -connect:
2>/dev/null | sed -ne '/ -BEGIN CERTIFICATE - /,/- END CERTIFICATE-/p ’> my-certificate-file.pem
Б). Ако сертификатът, използван от сървъра, е подписан от организация на трета страна, в предишната стъпка ще видим нейните контакти, чрез които може да бъде поискан. Можете да прочетете за различни видове сертификати и да опитате онлайн конвертор от един тип в друг тук - https://www.sslshopper.com/ssl-converter.html
3. Създайте файл за съхранение с този единствен ключ:
keytool -import -v -trustcacerts -alias myalias -file /bcprov-jdk16-146.jar -storepass