【问题标题】:Mosquitto MQTT and OpenSSLMosquitto MQTT 和 OpenSSL
【发布时间】:2021-02-17 14:44:45
【问题描述】:

我一直在使用 OpenSSL 和 mosquitto MQTT,我有一个问题。

到目前为止,我只有一个客户。但是如何将多个具有不同证书的客户端同时连接到同一个 MQTT 代理?

如果撤销其中一位客户的证书,它是如何工作的?

是否需要重启代理?

有人有例子吗?

我使用 SSL/TLS 进行安全连接,为此我使用以下文件:

ca.key
ca.crt

server:
ca.crt
server.key
server.crt

client:
ca.crt
client.key
client.key

而配置文件是这样的:

#Extra Listeners
listener 8883
cafile /Users/Documents/certs/ca.crt
keyfile /Users/Documents/certs/server.key
certfile /Users/Documents/certs/server.crt
#client certifcate settings
require_certificate true
use_identity_as_username true

谢谢!

【问题讨论】:

    标签: ssl openssl mqtt tls1.2 mosquitto


    【解决方案1】:

    对于第一个问题,要拥有多个客户端,您只需要确保每个客户端都有自己的证书,并且具有唯一的主题值。

    您可以通过让证书颁发机构生成一个新的证书吊销列表文件来吊销证书,然后使用配置文件中的crlfile 选项将 mosquitto 指向该文件。 例如

    #Extra Listeners
    listener 8883
    cafile /Users/Documents/certs/ca.crt
    keyfile /Users/Documents/certs/server.key
    certfile /Users/Documents/certs/server.crt
    crlfile /Users/Documents/certs/revoked.crl
    #client certifcate settings
    require_certificate true
    use_identity_as_username true
    

    手册页部分:

    crlfile 文件路径

    如果您将 require_certificate 设置为 true,您可以创建证书吊销列表文件来吊销对特定客户端的访问权限 证书。如果您已经这样做了,请使用 crlfile 指向 PEM 编码的撤销文件。

    由于手册页没有提到 crlfile 将在信号上重新加载,这意味着您每次撤销证书时都需要重新启动 mosquitto。

    【讨论】:

    • 不错!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多