mosquitto ssl/tls 设置

要是有密码都是12345678
Common Name 的值 不能是ip,一定要是域名(切记)

先安装 openssl

yum install openssl
yum install openssl-devel

cd /etc/mosquitto

mkdir ca

cd ca

-days 我就设置36500 一百年。。。

openssl req -newkey rsa:2045 -x509 -nodes -sha256 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt

输入密码

Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:gd
Locality Name (eg, city) []:sz
Organization Name (eg, company) [Internet Widgits Pty Ltd]:fih
Organizational Unit Name (eg, section) []:yun

就是这个, 要是域名

Common Name (e.g. server FQDN or YOUR name) []:sdw1
Email Address [] 123456@qq.com

这步走完生成了ca的两个文件

生成不加密的服务器密钥。

openssl genrsa -out server.key 2048

生成证书签名请求以发送到CA。

openssl req -out server.csr -key server.key -new

注意
当提示您输入CN(通用名称)时,请输入服务器(或代理)的主机名或域名。

将CSR发送到CA,或用您的CA密钥对其进行签名:

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 36500

客户
生成客户端密钥。

openssl genrsa -des3 -out client.key 2048
生成证书签名请求以发送到CA。

openssl req -out client.csr -key client.key -new
将CSR发送到CA,或用您的CA密钥对其进行签名:

openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 36500

此时在ca目录 下已经生成了server和clent的证书

修改配置文件 加上

ssl mosquitto配置文件 修改

listener 8883
cafile /etc/mosquitto/ca/ca.crt
certfile /etc/mosquitto/ca/server.crt
keyfile /etc/mosquitto/ca/server.key

#这个打开表示双向验证
require_certificate true
#如果下面这个设为true 那么数据库的用户名密码就无效了
use_identity_as_username false

注意配置文件里默认是port 1883 这是默认端口
listener 表示额外端口 可以监听多个端口
包换mqtt和websocket

如果服务端有配置ca.crt,那客户端连接时也要这个ca证书
打开表示双向验证,客户端也要带上客户端的crt,key文件才行

客户端连接里要用 SSLContext context = SSLContext.getInstance(“TLSv1.2”);
TLSv1.2这个协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值