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加密连接相关推荐

  1. ubuntu下用docker搭建sslocal

    ubuntu下用docker搭建sslocal 服务器环境 运行sslocal docker容器 服务器环境 阿里云 docker 运行sslocal docker容器 docker run -d \ ...

  2. Ubuntu 下 Janus Server 搭建笔记

    1 简介 Janus 是一个开源的,通过 C 语言实现了对 WebRTC 支持的 Gateway:Janus 自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 ...

  3. 乌班图系统我的世界服务器手机版,如何在Ubuntu 20.04上搭建Minecraft服务器

    <我的世界>是有史以来最受欢迎的游戏之一.本教程说明了如何在Ubuntu 20.04上制作Minecraft服务器.我们将使用Systemd运行Minecraft服务器,并使用该mcrco ...

  4. Ubuntu下使用valet搭建laravel生产环境

    Ubuntu下使用valet搭建laravel生产环境 1.安装系统所需软件 更新软件列表 sudo apt update 2.更新软件 echo y | sudo apt upgrade 如果觉得时 ...

  5. 在Ubuntu系统使用Nginx搭建RTMP服务器

    在Ubuntu系统使用Nginx搭建RTMP服务器 参考链接:nginx搭建rtmp服务器 简介 本文简单记录了在Ubuntu18.04系统上使用nginx搭建RTMP服务器的方法. 安装 下载ngi ...

  6. xp http文件服务器,在XP sp3下用IIS搭建http服务器总结

    在XP sp3下用IIS搭建http服务器总结 需要将搭建一个http服务器. 以下是安装的全部过程: 1.确认计算机的名字:我的电脑->右键属性->计算机名->确认计算机的名字,最 ...

  7. centos下利用httpd搭建http服务器方法

    centos下利用httpd搭建http服务器方法 1. 解决的问题 在开发测试过程中,分析图片任务需要将图片保存在服务器端,通过url来访问和下载该图片,这就需要使用一台图片服务器,但常常遇到图片服 ...

  8. Windows环境下用Gitblit搭建git服务器

    Windows环境下用Gitblit搭建git服务器 一,下载Gitblit.下载地址:http://gitblit.com/ 现在版本是1.8.0. 二,下载后解压该文件,找到data/目录下的de ...

  9. 2012系统如何搭建pptp服务器,ubuntu server 12.04 搭建 pptp 服务器

    ubuntu server 12.04 搭建 pptp 服务器 blog 归档 运维 Linux pptp 前几天把pptp服务器搭上了, xen的vps就这点好处, 想怎么搞就怎么搞, 虽说贵了点. ...

最新文章

  1. python %f 怎样指定小数点的位数
  2. 使用 CodeIgniter 框架快速开发 PHP 应用(二)
  3. 今天起,踏踏实实做技术
  4. vscode 使用笔记
  5. [SharePoint 2010] Client Object Model 跨时区查询list item的方法
  6. SpringBoot整合Mybatis,并实现事务控制
  7. 如何去除chrome最常访问的网页
  8. 解决UnicodeEncodeError: 'gbk' codec can't encode character '\xe4' in position 319等问题
  9. [ openwrt ] 添加一个通过GPIO控制的LED
  10. 泛微OA设置系统默认水印
  11. BIGEMAP离线数据包网盘下载密码:1111
  12. Laragon 在Windows中快速搭建Laravel本地开发环境
  13. python在线 培训
  14. docker第二节点无法启动报错xtrabackup_checkpoints missing. xtrabackup/SST failed on DONOR. Check DONOR log解决方案
  15. 62 旋转字符串(Rotate String)
  16. 快速传超大文件的解决方案
  17. jca.jar_JCA 1.5,第1部分,优化和生命周期管理
  18. OKR和KPI的区别
  19. java chrome 控制台_[Java教程]Chrome 控制台指南
  20. 第四章 指令集体系结构——广度和深度

热门文章

  1. 中国超级计算机发明者,发明!世界上第一台超级计算机,将于2021年问世!
  2. 与某易易盾的加固历程
  3. 【这个问题纠结了我好多年】3dMax到底使用Intel还是AMD的CPU更好?
  4. mysql提供的凭证是什么_记账凭证是什么
  5. 网页中的表格保存为EXCEL表格,打印网页中的表格
  6. springboot+vue驾校管理系统 idea科目一四预约考试,练车
  7. 天拓分享 | 西门子伺服电机的使用过程中这些事项要注意
  8. kindle来袭,当当错过的那些机会
  9. 【Carsim Simulink自动驾驶仿真】基于MPC的轨迹跟踪控制
  10. 【硬刚大数据】从零到大数据专家之数据仓库体系建模实施注意事项小总结