Android app与mosquitto tls单/双向认证

搭建Android app与mosquitto tls单/双向认证流程总结如下:

1. 得到的证书以及秘钥情况如下

檔案

說明

rootCA.cert.pem

ROOT CA

rt5750w.mqtt.mosquitto.chain.pem

Mosquitto Server Certificate

rt5750w.mqtt.mosquitto.key.pem

Mosquitto Server Certificate Key

rt5750w.mqtt.ca.chain.pem

Mosquitto Server CA Certificate

rt5750w.mqtt.client.chain.pem

MQTT Client Certificate

rt5750w.mqtt.client.key.pem

MQTT Client Certificate Key

2. 编辑/etc/mosquitto/mosquitto.conf文件

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

#log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

log_dest stdout

port 8883

cafile /home/xxxx/mqtt_cert/rootCA.cert.pem

certfile /home/xxxx/mqtt_cert/rt5750w.mqtt.mosquitto.chain.pem

keyfile /home/xxxx/mqtt_cert/rt5750w.mqtt.mosquitto.key.pem

tls_version tlsv1.2

require_certificate true

use_identity_as_username true

如果去掉require_certificate true与use_identity_as_username true则为单向认证

3. 运行mosquitto -c /etc/mosquitto/mosquitto.conf -v 以启动服务器

4. 运行mosquitto_sub -h 服务器ip -p 8883 -t topic --tls-version tlsv1.2 --cafile ./rootCA.cert.pem --cert ./rt5750w.mqtt.client.chain.pem --key ./rt5750w.mqtt.client.key.pem --insecure -d (双向)

  运行mosquitto_sub -h 10.8.2.230 -p 8883 -t topic --tls-version tlsv1.2 --cafile ./rootCA.cert.pem  --insecure -d (单向)

 此步骤为了测试服务器是否成功运行

5. 转换rootCA.cert.pem为bks文件(bcprov-jdk15on-160.jar需要从网上下载)

  keytool -importcert -keystore ca.bks -file ./mqtt_cert/rootCA.cert.pem  -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider --ProviderPath ./bcprov-jdk15on-160.jar

6. 生成pcks12文件

openssl pkcs12 -export -inkey rt5750w.mqtt.client.key.pem -in rt5750w.mqtt.client.chain.pem -out client.pfx

7.参考网站http://www.zhangjunjie.net/archives/894编写Android代码 (tls版本要为1.2)

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值