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