在ubuntu下用mosquitto搭建mqtt服务器,mqtt.fx的tls加密连接
1.sudo apt-get install mosquitto mosquitto-clients mosquitto-dev
安装mosquitto及相关组件
2.在/etc/mosquitto/下编写一个脚本,就叫generate-CA.sh ,里边编写以下内容。
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the axTLS project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
##
# Generate the certificates and keys for testing.
#PROJECT_NAME="TLS Project"# Generate the openssl configuration files.
cat > ca_cert.conf << EOF
[ req ]
distinguished_name = req_distinguished_name
prompt = no[ req_distinguished_name ]O = $PROJECT_NAME Dodgy Certificate Authority
EOFcat > server_cert.conf << EOF
[ req ]
distinguished_name = req_distinguished_name
prompt = no[ req_distinguished_name ]O = $PROJECT_NAMECN = 192.168.10.128
EOFcat > client_cert.conf << EOF
[ req ]
distinguished_name = req_distinguished_name
prompt = no[ req_distinguished_name ]O = $PROJECT_NAME Device CertificateCN = 192.168.10.128
EOFmkdir ca
mkdir server
mkdir client
mkdir certDER# private key generation
openssl genrsa -out ca.key 2048
openssl genrsa -out server.key 2048
openssl genrsa -out client.key 2048# cert requests
openssl req -out ca.req -key ca.key -new \-config ./ca_cert.conf
openssl req -out server.req -key server.key -new \-config ./server_cert.conf
openssl req -out client.req -key client.key -new \-config ./client_cert.conf # generate the actual certs.
openssl x509 -req -in ca.req -out ca.crt \-sha512 -days 5000 -signkey ca.key
openssl x509 -req -in server.req -out server.crt \-sha512 -CAcreateserial -days 5000 \-CA ca.crt -CAkey ca.key
openssl x509 -req -in client.req -out client.crt \-sha512 -CAcreateserial -days 5000 \-CA ca.crt -CAkey ca.keyopenssl x509 -in ca.crt -outform DER -out ca.der
openssl x509 -in server.crt -outform DER -out server.der
openssl x509 -in client.crt -outform DER -out client.dermv ca.crt ca.key ca/
mv server.crt server.key server/
mv client.crt client.key client/mv ca.der server.der client.der certDER/rm *.req
rm *.srl
3.执行generate-CA.sh
(注意,这个ip改成自己的,用ifconfig可以查看)
4.会生成几个文件夹,里面放着需要用的密钥。
5.编写mosquitto.conf。
password_file /etc/mosquitto/pwfile.txt
allow_anonymous false
listener 1883
cafile /etc/mosquitto/ca/ca.crt
certfile /etc/mosquitto/server/server.crt
keyfile /etc/mosquitto/server/server.key
require_certificate true
tls_version tlsv1.2
指定了密码文件,不能匿名登陆,tls证书文件。require_certificate true代表使用双向认证。(还有一句use_identity_as_username true没写是因为已经用自己的用户名密码了。)
6.设定密码,使用命令mosquitto_passwd /etc/mosquitto/pwfile.txt tianning
设定密码(一共两个参数,第一个代表文件位置,第二个代表用户名),然后再输入密码就可以了。
7.来试试,使用mosquitto -c /etc/mosquitto/mosquitto.conf开启服务器。
8.失败了,提示端口占用,好像mosquitto安装完就自己开启了。那就先停止。使用命令sudo service mosquitto stop 再重试。
9,又有错误,应该是权限问题,用命令chmod -R 777 ./server ./client ./ca加权限。执行成功了。
10,把ca下的ca.crt 和client下的client.key和client.crt复制win下,安装mqtt.fx,并打开。
ip填和ubuntu一样,端口没改的话就是1883,clientid随便,密码账号和刚才第六步设定一样。
11.配置tls证书协议和文件。
12.保存回到主页面,点击连接就能连接了。
13.在fx上订阅一个主题hello。
14.新开一个终端,输入命令发布一个主题mosquitto_pub -t “hello” -m “hello” -u tianning -P tianning --cafile /etc/mosquitto/ca/ca.crt --key /etc/mosquitto/client/client.key --cert /etc/mosquitto/client/client.crt -p 1883 --insecure
可以看到fx已经收到了。
同理,订阅格式也差不多。
在ubuntu下用mosquitto搭建mqtt服务器,mqtt.fx的tls加密连接相关推荐
- ubuntu下用docker搭建sslocal
ubuntu下用docker搭建sslocal 服务器环境 运行sslocal docker容器 服务器环境 阿里云 docker 运行sslocal docker容器 docker run -d \ ...
- Ubuntu 下 Janus Server 搭建笔记
1 简介 Janus 是一个开源的,通过 C 语言实现了对 WebRTC 支持的 Gateway:Janus 自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 ...
- 乌班图系统我的世界服务器手机版,如何在Ubuntu 20.04上搭建Minecraft服务器
<我的世界>是有史以来最受欢迎的游戏之一.本教程说明了如何在Ubuntu 20.04上制作Minecraft服务器.我们将使用Systemd运行Minecraft服务器,并使用该mcrco ...
- Ubuntu下使用valet搭建laravel生产环境
Ubuntu下使用valet搭建laravel生产环境 1.安装系统所需软件 更新软件列表 sudo apt update 2.更新软件 echo y | sudo apt upgrade 如果觉得时 ...
- 在Ubuntu系统使用Nginx搭建RTMP服务器
在Ubuntu系统使用Nginx搭建RTMP服务器 参考链接:nginx搭建rtmp服务器 简介 本文简单记录了在Ubuntu18.04系统上使用nginx搭建RTMP服务器的方法. 安装 下载ngi ...
- xp http文件服务器,在XP sp3下用IIS搭建http服务器总结
在XP sp3下用IIS搭建http服务器总结 需要将搭建一个http服务器. 以下是安装的全部过程: 1.确认计算机的名字:我的电脑->右键属性->计算机名->确认计算机的名字,最 ...
- centos下利用httpd搭建http服务器方法
centos下利用httpd搭建http服务器方法 1. 解决的问题 在开发测试过程中,分析图片任务需要将图片保存在服务器端,通过url来访问和下载该图片,这就需要使用一台图片服务器,但常常遇到图片服 ...
- Windows环境下用Gitblit搭建git服务器
Windows环境下用Gitblit搭建git服务器 一,下载Gitblit.下载地址:http://gitblit.com/ 现在版本是1.8.0. 二,下载后解压该文件,找到data/目录下的de ...
- 2012系统如何搭建pptp服务器,ubuntu server 12.04 搭建 pptp 服务器
ubuntu server 12.04 搭建 pptp 服务器 blog 归档 运维 Linux pptp 前几天把pptp服务器搭上了, xen的vps就这点好处, 想怎么搞就怎么搞, 虽说贵了点. ...
最新文章
- python %f 怎样指定小数点的位数
- 使用 CodeIgniter 框架快速开发 PHP 应用(二)
- 今天起,踏踏实实做技术
- vscode 使用笔记
- [SharePoint 2010] Client Object Model 跨时区查询list item的方法
- SpringBoot整合Mybatis,并实现事务控制
- 如何去除chrome最常访问的网页
- 解决UnicodeEncodeError: 'gbk' codec can't encode character '\xe4' in position 319等问题
- [ openwrt ] 添加一个通过GPIO控制的LED
- 泛微OA设置系统默认水印
- BIGEMAP离线数据包网盘下载密码:1111
- Laragon 在Windows中快速搭建Laravel本地开发环境
- python在线 培训
- docker第二节点无法启动报错xtrabackup_checkpoints missing. xtrabackup/SST failed on DONOR. Check DONOR log解决方案
- 62 旋转字符串(Rotate String)
- 快速传超大文件的解决方案
- jca.jar_JCA 1.5,第1部分,优化和生命周期管理
- OKR和KPI的区别
- java chrome 控制台_[Java教程]Chrome 控制台指南
- 第四章 指令集体系结构——广度和深度
热门文章
- 中国超级计算机发明者,发明!世界上第一台超级计算机,将于2021年问世!
- 与某易易盾的加固历程
- 【这个问题纠结了我好多年】3dMax到底使用Intel还是AMD的CPU更好?
- mysql提供的凭证是什么_记账凭证是什么
- 网页中的表格保存为EXCEL表格,打印网页中的表格
- springboot+vue驾校管理系统 idea科目一四预约考试,练车
- 天拓分享 | 西门子伺服电机的使用过程中这些事项要注意
- kindle来袭,当当错过的那些机会
- 【Carsim Simulink自动驾驶仿真】基于MPC的轨迹跟踪控制
- 【硬刚大数据】从零到大数据专家之数据仓库体系建模实施注意事项小总结