mosquitto之linux编译

一、编译前工作

        需要先安装好CMake工具。
        解压源码,例如:mosquitto-1.6.9.tar.gz到目录/home/workspace/mosquitto-1.6.9,打开CMake软件:
mosquitto之linux编译_第1张图片
        选择后点击“Configure”按钮。
mosquitto之linux编译_第2张图片
        在Linux的x64系统中选择默认选项,点击“Finish”按钮。
mosquitto之linux编译_第3张图片
        等待初始化配置,当日志窗口出现“Configuring done”时,说明初始化配置完成。
mosquitto之linux编译_第4张图片
        此时,可以在图中的红色区域内进行个性化配置,以下介绍几个重要的配置选项。

  • CMAKE_INSTALL_OLDINCLUDEDIR,默认为/usr/include。这里改为/opt/mosquitto-1.6.9-linux/include
  • CMAKE_INSTALL_PREFIX,指定mosquitio编译后的安装路径,默认为/usr/local。这里改为/opt/mosquitto-1.6.9-linux
  • WITH_STATIC_LIBRARIES,指定是否同时编译出静态库,若打勾则除了动态库还会编译出静态库,默认不打勾(只编译动态库)。
  • WITH_TLS,指定是否包含SSL/TLS支持,默认打勾(若打勾,必须设置OpenSSL相关配置选项),若不想使用SSL,则不打勾。
  • WITH_TLS_PSK,指定是否包含TLS_PSK支持,默认打勾(若打勾,必须同时把WITH_TLS打勾),若不想使用SSL,则不打勾。

        当个性配置设置确认后,点击“Generate”按钮,生成构建文件。
在这里插入图片描述
        当日志窗口出现“Generating done”时,表示构建文件已经创建成功。
mosquitto之linux编译_第5张图片
        进入目录/home/software/mosquitto-1.6.9-build,可以看到如下文件。
mosquitto之linux编译_第6张图片

二、编译源码

        打开终端,输入命令:make all,成功后,输入命令:make install,即可把mosquitto库安装到目录:/opt/mosquitto-1.6.9-linux
mosquitto之linux编译_第7张图片

三、服务器搭建以及SSL/TLS安全配置

1、服务器搭建
        终端进入/opt/mosquitto-1.6.9-linux/bin目录,可以看到:
mosquitto之linux编译_第8张图片
        运行命令./mosquitto,将启动代理服务器,默认端口为1883,可以加上-h选项查看帮助,运行成功后如下:
在这里插入图片描述
        可以加上-c选项为服务器指定配置文件,配置文件模板在目录/opt/mosquitto-1.6.9-linux/etc/mosquitto里:
mosquitto之linux编译_第9张图片
        可以把该文件拷贝到目录/opt/mosquitto-1.6.9-linux/bin,如:
mosquitto之linux编译_第10张图片
        然后在修改mosquitto.conf里面的配置选项。终端运行./mosquitto -c mosquitto.conf加载配置文件,每次修改配置文件后无法立即生效,需要重启服务器。
2、SSL/TLS安全配置
        首先需要已经安装了openssl库,请参考:

  • openssl之linux编译
  • openssl之相关概念
  • openssl之命令选项

        在任意路径创建目录,假设命名为cert,目录路径为:/home/workspace/cert。在目录中创建两个文件:

  • rsa_ca.sh,用于创建自己根证书文件和私钥的CA.crtCA.key(注意:正式情况不能这样处理)。代码如下:
#!/bin/bash

# 配置证书公司名
CA_O="company"

# 配置证书有效时间(天数)
CA_DAYS=3650

# 生成私钥文件
openssl genrsa -out CA.key 1024

# 生成自签名证书
CA_SUBJ="/O=$CA_O"
openssl req -new -key CA.key -x509 -days $CA_DAYS -out CA.crt -subj $CA_SUBJ

rm -rf *.srl

  • rsa_client.sh,用于生成客户用的client.crtclient.key文件。代码如下:
#!/bin/bash

# 配置证书公司名
CLIENT_O="company"

# 配置主机地址
CLIENT_CN="127.0.0.1"

# 配置证书有效时间(天数)
CLIENT_DAYS=3650

# 生成私钥文件
openssl genrsa -out client.key 1024

# 生成证书请求文件
CLIENT_SUBJ="/O=$CLIENT_O/CN=$CLIENT_CN"
openssl req -new -key client.key -out client.csr -subj $CLIENT_SUBJ

# 生成自签名证书
openssl x509 -req -in client.csr -CA CA.crt -CAkey CA.key -CAcreateserial -days $CLIENT_DAYS -out client.crt

rm -rf *.srl
rm -rf *.csr

        这里把client.crtclient.key文件重命名为mosq_srv.crtmosq_srv.key供服务器使用。
        修改/opt/mosquitto-1.6.9-linux/bin/mosquitto.conf配置文件。

  • 把默认端口号修改为8883,如:

mosquitto之linux编译_第11张图片

  • 指定cafilecertfilekeyfile选项,如:

mosquitto之linux编译_第12张图片

  • 设置服务器为需要证书验证,如:

mosquitto之linux编译_第13张图片
        保存配置文件,运行命令./mosquitto -c mosquitto.conf,运行成功后如下:
在这里插入图片描述

你可能感兴趣的:(网络)