使用 Xamarin Visual Studio C# 使用 M2Mqtt 通过 ssl 连接到 Mosquitto mqtt

using Xamarin Visual Studio C# using M2Mqtt to connect to Mosquitto mqtt with ssl

我正在尝试使用 M2Mqtt 在 Xamarin c# 应用程序中连接到我的 mosquitto mqtt 代理。

我在我的程序中创建 x509 证书时遇到困难

参见 --- 我的另一个问题

但我想提出这个问题只是为了看看是否有人这样做过。我已经花了2天了,完全没有任何进展。

我唯一关心的是加密移动设备和我的蚊子经纪人之间的通信。

我已经使用 mosquitto-auth-plug 保护了代理,我无法通过无线方式发送凭据。

另一个问题 -- 我不关心验证移动用户我只想与我的经纪人创建一个安全的加密连接,所以我不需要我的用户获得任何证书或任何东西?正确

-----为 hardilib 编辑

我在 centos 7 服务器上有一个 mosquitto 代理 运行。我已将代理配置为接受 ssl/tls 连接并使用 mosquitto-auth-plug 来确保用户安全。

我有一个用 visual studio 2017 企业版用 c# Xamarin 编写的移动应用程序。

我的 mqtt 代理和使用 M2Mqtt 客户端的移动应用程序之间的非加密通信非常好。

我需要移动应用程序和代理之间的加密通信才能在现实世界中工作。

我已尝试遵循我能在

找到的唯一信息

http://embedded101.com/Blogs/PaoloPatierno/entryid/366/MQTT-over-SSL-TLS-with-the-M2Mqtt-library-and-the-Mosquitto-broker

除了

部分,我已经全部完成了

CA 证书包含在资源文件 (Resources.resx) 中,一旦读取为字节流就提供给 X509Certificate 构造函数 class,以便获得MqttClient 的有效 X.509 证书。

客户端连接字符串

MqttClient("ppatierno-PC", MqttClient.MQTT_BROKER_DEFAULT_SSL_PORT, true, new X509Certificate(Resources.m2mqtt_ca));

我无法创建 x509Certificate,因为我不知道如何创建资源文件。

当我尝试从我尝试使用的路径的文件 none 创建证书时 -- 请参阅上面的其他问题。

有没有人成功完成我上面解释的事情,或者有其他方法来保护应用程序和服务器之间的通信,如果有请帮助。

谢谢

我发现您可以使用 AssetManager class 从您的 xamarin 解决方案目录中检索资产。

查看我的其他 post 以获得更完整的说明