ທົດສອບການສື່ສານກັບ MQTT broker ແບບ LTS/SSL Part #TheEnd Android

xangnam phiasakha
VtCamp
Published in
2 min readMay 19, 2018

ຈາກບົດຄວາມກ່ອນໜ້ານີ້ ທົດສອບການສື່ສານກັບ MQTT broker ແບບ LTS/SSL Part #2 ESP8266 ທີ່ໄດ້ເວົ້າເຖິງການເຊື່ອມຕໍ່ MQTT broker ແບບ TLS/SSL ຂອງ ESP8266 ຫຼື ທາງດ້ານ Smart device. ມາໃນບົດຄວາມນີ້ກໍ່ເປັນຕອນຈົບແລ້ວ
ເຊິ່ງຈະເວົ້າເຖິງການໃຊ້ android ເຊື່ມຕໍ່ເຂົ້າໄປທີ່ MQTT broker ຜ່ານ TLS/SSL Connection.

MQTT Client for android

ສຳລັບ Android ເອງກໍ່ມີ Library MQTT Client ໃຫ້ໃຊ້ເຊິ່ງນາມນັ້ນແມ່ນ Eclipse Paho
ວ່າແລ້ວກໍ່ຕິດຕັ້ງເຂົ້າໃນ project android studio ຂອງເຮົາເລີຍ.

build.gradle (Project)

maven {
url "https://repo.eclipse.org/content/repositories/paho-releases/"
}

build.gradle (Module app)

compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'){
exclude module: 'support-v4'
}

ສຳລັບ document ຂອງ Paho ໄປຫາອ່ານເອງທີ່ website ທາງການເລີຍ. ຜູ້ຂຽນຈະມາເວົ້າເຖີງວິທີການເຊື່ມຕໍ່ດ້ວຍ TLS/SSl ເທິງ Android ເທົ່ານັ້ນ.

Generating BouncyCastle format certificates

ໃນການເຊື່ມຕໍ່ດ້ວຍ Paho MQTT client ແບບ TLS/SSL ນັ້ນຈຳເປັນຕ້ອງໄດ້ສ້າງ certificate ຂຶ້ນມາເອງເພາະ library ບໍ່ support ການເຊື່ມຕໍ່ TLS ມາໃນໂຕດັ່ງນັ້ນເຮົາຈຶ່ງຕ້ອງນຳເອົາ server certificate ທີ່ເຮົາໄດ້ generate ຂຶ້ນມາໃຊ້ກ່ອນໜ້ານີ້ມາສ້າງເປັນ Trust-certificate ໂດຍ BouncyCastle ກ່ອນອື່ນກໍ່ໃຫ້ໄປໂຫຼດ bcprov-ext-jdk15on-1.46.jar ມາເສຍກ່ອນແລ້ວ run command line ລຸ່ມນີ້

$ keytool -import -alias mqtt-broker -file cacert.pem  -keypass mykeystorepassword -keystore raw_key_file  -storetype BKS -storepass mykeystorepassword -providerClass org.bouncycastle.jce.provider.BouncyCastleProvider   -providerpath bcprov-ext-jdk15on-1.46.jar

ເຊິ່ງເຮົາຈະໄດ້ raw_key_file ທີ່ເຮົາຈະນຳໄປໃຊ້ໃນ android code ຂອງເຮົາໂດຍໃຫ້ນຳ file ດັງກ່າວໄປວາງໄວ້ທີ່ raw directory

ຈາກນັ້ນກໍ່ສ້າງ class ຂຶ້ນມາໃສ່ຊື່ວ່າ SslUtility ແລະ code ດັ່ງນີ້

SslUtility class

ເປັນ class ທີ່ໃຊ້ສ້າງ TLS/SSL socket ຂື້ນມາໂດຍໃຊ້ certificate ທີ່ເຮົາ generate ຂຶ້ນມານັ້ນ.

Eclipse Paho MQTT client

code ສ່ວນທີ່ໃຊ້ເຊື່ມຕໍ່ MQTT broker ຂອງ Eclipse Paho

Eclipse Paho MQTT client

ພຽງເທົ່ານີ້ເຮົາກໍ່ສາມາດເຊື່ມຕໍ່ກັບ MQTT broker ດ້ວຍ TLS/SSL ໄດ້ແລ້ວ

Referent

rijware.com

ຂອບໃຈທີ່ອົດທົນອ່ານຈົນຈົບ ແລະ ແປລາວເປັນລາວ

--

--