mosquitto 给服务器与客户端--生成服务器证书--openssl

本文介绍如何使用OpenSSL生成自签名CA证书及Mosquitto服务器与客户端的SSL证书,并详细说明了证书生成的过程及其在Mosquitto中的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

3.生成服务器证书

 openssl req -new -x509 -days 3650 -keyout m2mqtt_ca.key -out m2mqtt_ca.crt

openssl genrsa -des3 -out m2mqtt_srv.key 1024

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

openssl x509 -req -in m2mqtt_srv.csr -CA m2mqtt_ca.crt -CAkey m2mqtt_ca.key -CAcreateserial -out m2mqtt_srv.crt -days 3650

android仅支持BKS格式的证书 ,使用keytool装换CRT成为BKS格式,

 

 不能
上述三个过程将使用openssl完成,将用到如下几条相关的命令:bn

l    产生CA的key和证书文件

openssl req -new -x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt

该命令将为CA产生一个名字为“ca.key”的key文件和一个名字为“ca.crt”的证书文件,这个crt就是CA自己给自己签名的证书文件。

该命令中选项“-x509”表示该条命令将产生自签名的证书,一般都是测试的时候采用。

l    为mosquittoserver私钥文件“server.key”和证书文件”server.crt”

(1)为mosquittoserver产生一个私钥文件server.key

openssl genrsa -out server.key 2048

该命令将产生一个不加密的RSA私钥,其中参数“2048”表示私钥的长度,这里产生的私钥文件“server.key”将在下一步使用,同时在mosquitto程序的配置文件中也需要使用。

如果需要为产生的RSA私钥加密,则需加上选项“-des3”,对私钥文件加密之后,后续使用该密钥的时候都要求输入密码。产生加密RSA私钥文件的命令如下:

opensslgenrsa -des3 -out server.key 2048

如果为RSA私钥文件加密了,则一定要记好密码,后面产生csr文件时以及后续使用该私钥文件都会用到该密码。

(2)为mosquitto server产生一个签发证书的请求文件“server.csr”

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

该命令将使用上一步产生的“server.key”文件为server产生一个签发证书所需要的请求文件:server.csr,使用该文件向CA发送请求才会得到CA签发的证书。

(3)CA为mosquitto server产生一个证书文件

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

该命令将使用CA的密钥文件ca.key,CA的证书文件ca.crt和上一步为mosquitto server产生证书请求文件server.csr文件这三个文件向CA请求产生一个证书文件,证书文件的名字为:server.crt。该命令中的36500可以修改为自己定义的时间值。

l    为mosquitto的客户端程序产生私钥文件”client.key”和证书文件“client.crt”,过程与为server端类似,这里将不再累述。

(1) 为mosquittoserver产生一个私钥文件”client.key”

openssl genrsa -out client.key 2048

(2) 为mosquitto客户端产生一个签发证书的请求文件“client.csr “

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

产生证书请求文件时需要第一步产生的私钥文件client.key作为输入。

(3) CA为mosquitto客户端产生一个证书文件”client.crt”

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

 

 

3、 Mosquito使用ssl功能的具体操作方法

下面的例子中,将使用:A(192.168.4.222),B(192.168.4.223)和C(192.168.4.221)这三台机子,其中使用A制作CA证书;在B上运行mosquitto实例,在C上运行一个订阅端,一个发布端。

3.1、产生CA

测试过程中CA在主机cddserver3上;另外,测试过程中,无需采用真正的CA,使用我们自己产生的CA即可,使用命令为:

openssl req -new-x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt

mosquitto_sub -h 192.168.16.211 -i 111 -p 9990 -t "111" --cafile /home/yandong/m2mqtt_key/ca.crt --cert /home/yandong/m2mqtt_key/client.crt --key /home/yandong/m2mqtt_key/client.key

mosquitto_pub -h 192.168.16.211 -p 9990 -t "111" -m "this is jason.hou" --cafile /home/yandong/m2mqtt_key/ca.crt --cert /home/yandong/m2mqtt_key/client.crt --key /home/yandong/m2mqtt_key/client.key


keytool -importcert -keystore test.bks -file ca.crt  -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值