关于java通过ssl连接mqtt

我这边java在没有通过ssl连接mqtt的时候是可以连接的(可以订阅与发布),
但是通过ssl就不行了,发现是读取证书的时候出错了,错误是这样的:

java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor

at sun.security.x509.X509CertImpl.(Unknown Source)
at sun.security.provider.X509Factory.engineGenerateCertificate(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificate(Unknown Source)
at com.test.mqtt.AppTest.main(AppTest.java:51)

Caused by: java.io.IOException: extra data given to DerValue constructor

at sun.security.util.DerValue.init(Unknown Source)
at sun.security.util.DerValue.(Unknown Source)
at sun.security.util.DerValue.(Unknown Source)
... 4 more

具体代码是:
CertificateFactory cf;

try {
    cf = CertificateFactory.getInstance("X.509");
     FileInputStream crtIn = new FileInputStream("D:\\test\\client.crt");
     X509Certificate caCert = (X509Certificate) cf.generateCertificate(crtIn);
        //Certificate caCert =  cf.generateCertificate(crtIn);
        crtIn.close();
} catch (CertificateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA使用ssl方式连接mqtt
请确保你已经有证书了,且已经配置好了mqtt的ssl支持。没有配置好的请看之前的文章:自制CA证书,自制客户端,服务端证书、mqtt配置使用ssl加密通信。按照这两篇文章操作之后接下来就可以编写java代码来使用ssl方式连接mqtt了。n作者是maven项目,所以添加一下依赖:n <dependency>n <groupId>com.alibaba...
esp8266与mosquitto的mqtt的ssl通讯实现(三)-mosquitto配置
先把源代码贴出来,供大家参考,有问题请留言,后续有时间再整理。nnnmosquitto 配置文件:nmosquitto.confnnnautosave_interval 1800npersistence truenpersistence_file mosquitto.dbnpersistence_location /tmp/nconnection_messages truenlog_
Android MQTT推送之SSL相关问题解决
n 公司推送选择的是MQTT,之前没有了解过,所以踩了不少坑,这里记录一下,希望能帮助到别人。nnnnn前言nn现在大部分公司用的都是单向认证,对于Https不了解的话,请看这里,废话不多说,上干货。nnnn第一步 重命名nn你们公司使用SSL,都会在服务端配置一个文件 n比如:cacert.pem n你直接将cacert.pem重命名为cacert.crt,然后读取即可nn第二步 如何读取?n...
ActiveMQ SSL应用之三 ActiveMQ开启SSL连接器配置
AcitveMQ通过修改配置文件,开启SSL连接器
esp8266与mosquitto的mqtt的ssl通讯实现(一)
将esp8266与mosquitto进行mqtt的ssl加密通讯过程之艰辛,资料程序都没有完整的,问题也很多,好在有CSDN,GitHub,Google等等,大家技术分享和技术问答,所以打算将过程写出来,中间很多问题解决了中间过程没有记下来,以后会经常写博客贴出来,一些源代码也会放到Github上大家参考。rn具有参考价值代码,博客也会贴出来,一点点更新吧。rn目前基本实现了 设备端-服务器-客户
【MQTT学习】MQTT连接阿里云教程
打开阿里云官网https://www.aliyun.com/,注册并登录nnnn找到右上角的控制台点进去nnnn点击左侧的栏目找到“产品与服务”,在里面继续找到“应用与服务下面的”“物联网平台”nn依次找到《设备管理》《产品》,然后“创建产品”nnnn这里面有些内容需要根据自己的情况填写nn主要的注意结点类型和联网里面的选项,产品名称,分类等都没什么说的,完成创建后就可以继续创建设备了。nn这里提...
JS实现websocket+mqtt+ssl通信客户端实现
订阅推送就不写了,主要是ssl加密下建立链接,我上网找了好多都没有,最后一个国外网站找到的,忘了网址了。rnbmqtt.js用的这个jsrnrnrn var KEY = "xxxxx.key"; //加密文件,保证能被访问rn var CERT = "xxxx.crt";rn var TRUSTED_CA_LIST = "xxxx.crt";rn rn var options
基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证
本文为参考网上其他博文搭建出服务器后的步骤记录,如有冒犯,请私信!!!nnnn目录... 3nn第 1 章 安装Mosquitto. 4nn1.1 方法一:手动编译安装... 4nn1.2方法二:在Ubuntu下使用apt-get安装... 5nn第 2 章 配置单/双向认证... 7nn2.1 生成证书... 7nn2.2 CA校验证书测试... 9nn2.3 配置单/双向认证... 10nn2...
openssl生成证书,阿里云EMQ服务器与本地mqtt.fx客户端测试
openssl生成证书,阿里云EMQ服务器与本地mqtt.fx客户端(代替esp8266)测试nn出于学习8266和项目的需要,然后感觉百度上这方面的资料不多而且有点,就结合了已有的资料,做了一份比较综合的总结吧算是。如有错误望大家指出,博主虚心请教。nnnn已有阿里云服务器ECS;本地下载mqtt.fxnnmqtt.fx的话,可以直接在这里下载:http://mqttfx.bceapp.com ...
springboot mqtt 双向认证代码实现
核心代码:nn@Beann public MqttConnectOptions getMqttConnectOptions() {n  MqttConnectOptions options = new MqttConnectOptions();n  n  Properties sslClientProps = new Properties();n  sslClientProps.setProper...
android MQTT 带SSL加密连接例子demo
android MQTT 带SSL加密连接例子demo 安卓使用BKS加密文件进行SSL加密MQTT连接
M2Mqtt类库中SSL连接建立方式
在使用mqtt建立的连接过程中有使用ssl和非ssl两种模式。在使用ssl的时候得指定tls的版本和回调验证,方法如下: nnn MqttClient client = new MqttClient(mqttServerIp, mqttServerSslPort, true, null, null, MqttSslProtocols.TLSv1_2, base.CheckVa...
esp8266与mosquitto的mqtt的ssl通讯实现(二)-证书生成
好久没更新了,有网友催着后续博客,最近比较忙,先把记得的部分,和一些代码贴出来,供大家参考,若有问题请大家留言,rn后面自己再重新弄一遍,再修改整理。rnrnrnesp8266上证书以*.h格式编译写到flash中,而服务器端格式为*.crt格式,rn采用脚本一次生成,代码如下,rnrnrnmakefile.shrnrnrnrn#rn# Generate the certificates and
mqtt配置使用ssl加密通信
作者使用的是docker版elipse-mosquitto(mqtt),没有使用docker版的mqtt配置与本文相同,进入正题:rn**请确保你的ca证书所在目录与作者相同!!!!**作者证书制作及所在目录请看自制CA证书,自制客户端,服务端证书rn1.准备一个mqtt配置文件mosquitto.confrn# Config file for mosquittorn#rn# See mosquitto.c...
ESP8266 MQTT SSL/TLS 阿里物联网套件 百度天工 Onenet等MQTT服务器
ESP8266 MQTT SSL/TLS 支持连接阿里物联网套件,百度天工,Onenet等MQTT服务器,支持SSL通信
MQTT带加密例子
android MQTT 带SSL加密连接例子demo,该demo是从实际项目中抽取出来的
QtAndMqtt、qt移植mqtt并实现与onenet的连接
本资源为基于qt5.6mingw移植的mqtt源代码,里面的源代码加入自己的onenet平台的ID即可连接到onnet平台,修改host、port等也可以连接到其它的服务器。代码移植过程可以参考教程:Qt 移植mqtt库(非官方库)并连接到eMQ、onenet:https://blog.csdn.net/baidu_33969363/article/details/85474605
java实现SSL双向认证
这里的代码主要是和mqtt一起连用,使用的证书是mqttserver.crt、client-cert.crt、client-key-pkc8.pemnnnpublic static final String CA_PATH = "mqttserver.crt"; npublic static final String CRT_PATH = "client-cert.crt";npublic sta...
MQTT协议 Python客户端
1、安装模块n下载并解压,打开目录执行命令安装模块python setup.py installn2、Python代码nimport paho.mqtt.client as mqtt# 当连接上服务器后回调此函数
nginx配置支持wss,https网页连接mqtt
之前在前端网页上写一个小网站,用于开发时在线订阅、发送mqtt数据包。n当部署在线上服务器时,因为域名网页有加载Https证书,所以连接mqtt时只能选用wss方式,却没有成功连接上mqtt。而mqtt的ws连接方式是可以的。n一、服务端配置n1.mqtt的配置文件n先来看线上服务器中mqtt配置文件nport 1883nnlistener 61613nprotocol websocketsnn配...
java 连接mqtt服务器
这是我开始实习工作的第一个程序,印象还是非常深刻的,师傅需要我写一个针对他们硬件产品的测试代码,需要连接mqtt服务器.rnpackage org.mqtt.client;rnrnrnimport java.util.Iterator;rnimport java.util.Map;rnimport java.util.Map.Entry;rnimport java.util.Set;rnrnrni
如何使用C实现MQTT+TLS客户端程序(2)--实现MQTT Client
nnnmosquitto_pub&mosquitto_subnMQTT服务器n订阅n发布nnn使用C语言实现MQTT Clientn代码分析n初始化操作n加载证书n建立TCP连接nTLS握手nMQTT连接nnnnngithub linknnnnnnnmosquitto_pub&mosquitto_subnn在实现MQTT client之前,我们可以先使用mosquitto_pub和...
Esp8266进阶之路⑨ 【小实战上篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。1、 Esp8266之 搭建开发环境,开始一个“hellow world”串口打印。rn2、 Esp8266之 利用GPIO开始使用按钮点亮你的“第一盏灯”。rn3、 Esp8266之 利用 “软件定时器 ” 定时0.5秒闪烁点亮一盏LED。rn4 、Esp8266之 了解P
SSL/TLS双向认证实现(JAVA、TOMCAT)
双向认证,客户端和服务端都会互相认证,即双发之间要证书交换 证书生成需服务端和客户端都生成证书,并进行证书交换(通常是服务端将server.cer发送给客户端,客户端将client.cer发送给服务端,然后各自导入自己的信任证书库) n服务端: n1. 生成jks格式服务器端的keystore文件,keypass与storepass需一致,因tomcat server.xml中仅一处keystore
mosquitto 单向SSL 协议内容抓包简单分析
这篇文章主要介绍mosquitto SSL加密前后包内容的区别,首先,不加密,观察包内容rn1. 未加密前rn通过client 向borker 发送 的topic 为test, 内容为tomcatrnrnrnrnrn2. 加密后rnrnrnrnrn第6帧 是 borker 向 client 发送证书rnrnrnrnrnrnrn第15帧是client 向borker 发送内容,可以看到消息已经被加密
参考大神教程完成阿里云自建服务器esp8266和mqtt客户端成功对接
阿里云自建服务器esp8266和mqtt客户端成功对接nn阿里云服务器部分参考esp8266嵌入式大神资料:大神博客n最近组建了一个小群,感兴趣的可以加入一起玩:476840321nnnn单片机也是很简单的,用的esp8266最小系统。nnnn过程中间遇到了很多问题,还好都一步步解决了,n首先是linux的一些常用命令,因为服务器买的是阿里云的空间,跑的是linux的系统,按照网上的资料和教程,总...
NodeMCU 通过MQTT 连接阿里云物联网
NodeMCU 通过MQTT 连接阿里云物联网n1.NodeMCU固件的选择及刷入ESP8266n1123nn
(二)mqtt客户端接入阿里云--云端查看接收到的数据
**rn简介:rn我们在云端建立产品和设备后,云下也要有对应的设备,云下设备和云上设备是一一对应的关系,现在不妨先用MQTT客户端模拟云下设备接入阿里云,并向阿里云发送数据,来体验一下设备接入阿里云,以后也可以用MQTT客户端辅助实际 设备起到调试的作用**rn一:获取设备的三元组rn步骤一:首先获取设备的三元组(所谓三元组就是产品名,设备名,设备秘钥)rn 产品名:设备属于哪一个产品rn 设备名:要接入...
MQTT客户端调试工具
自己写的一个MQTT客户端调试工具,可支持ssl登录,主题的订阅和发布,还支持HEX十六进制显示,同时还附带一个数据deflate压缩,为什么是1分呢,因为我上传的时候最低要选择一分。
阿里云 物联网套件 MQTT Swift 搭建-基于Tcp连接-域名连接模式
阿里云 物联网套件 MQTT Swift 搭建-基于Tcp连接-域名连接模式
如何使用C实现MQTT+TLS客户端程序(1)--使用mosquitto搭建MQTT服务器
nnn前言n简单介绍MQTTn简单介绍TLSn搭建MQTT服务器n1.配置用户名密码n这里需要配置三个字段n生成用户名密码n生成acl_file文件nnn2.使用openssl 生成服务器证书和客户端证书n安装openssln创建CA证书n生成服务器证书n生成客户端证书nnn完成mosquitto.conf文件n运行mosquitto服务器nnnnnnnnnnn前言nn这是一个使用C语言实现的MQ...
通过手动交叉编译mosquitto实现在OpenWRT中的MQTT客户端协议 (二)
引言nn之前的文章中已经介绍了第一种方法,本篇文章介绍使用自己下载的mosquito源码,在mosquitto源码编译的时候需要依赖其他的库,使用mipsel-openwrt-linux-交叉编译,最终生成libmosquitto.so.1动态链接库,本方法同样适用于ARM交叉编译连,在配置时把mipsel相对应的交叉编译链换成ARM对应的即可, 编译运行环境 64位 ubuntu16.04.nn...
Mosquitto安装和用户权限配置 SSL连接配置
nn一、概述n二、安装(linux-debian)n1.apt安装n2.安装扩展工具nnn三、配置n1.用户密码相关配置n1.1、配置用户验证信息n1.2、添加用户密码信息n1.3、添加访问控制列表文件,并分配topic和用户的权限关系n1.4、重启mosquittonnn2.SSL/TLS证书加密配置n2.1、配置.conf信息nnnnnnnnnn一、概述nnEclipse Mosquitto ...
使用 MQTTnet 快速实现 MQTT 通信
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。MQTT 是基于二进制消息的发布/订阅编程模式的消息协议,如今已经成为 OASIS 规范,由于规范很简单,非常适合需要低功耗和网络带宽有限的 IoT 场景。
MQTT环境搭建与测试
mosquitto
mbedTLS移植到stm32上以支持mqtt证书加密
花了两星期的时间完成移植和调bug,下面就说一下几个关键的地方rn1.mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED );第二个参数不要用MBEDTLS_SSL_VERIFY_OPTIONAL,不然验证通不过的时候也能用,意义不大rn2.mbedtls_ssl_set_hostname( &ssl, "MQTT" )第二个
STM32 实现SSL通讯
STM32单片机实现SSL加密通讯的资料。有源码下载地址。
SSL/TLS 双向认证(二) -- 基于mosquittto的MQTT双向认证
MQTT双向认证
使用TCP转MQTT协议连接onenet平台
走tcp协议连接MQTT可以解决模块不支持MQTT协议的问题。rn首先我们得在onenet平台上创建设备。rn具体如何创建,请看onenet平台的手册教程。rn创建设备后,我们把产品ID、设备ID和鉴权信息,记录下来。rn第二步rn我们要知道服务器的ip地址和端口号rnOnenet平台的mqtt的服务器IP是:183.230.40.39 端口是:6002rn第三步rn使用tcp工具选择TCPrnClientrn然后输...
MQtt 数据交互工具
MQtt协议开发项目时,用于产生数据的工具,以便为开发提供模拟数据。项目测试对接工具。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java mqtt学习 java学习mqtt