Built with PrismLibrary/Prism
See the wiki for documentation.
-
6/2/2021 Converted from M2MqttDotNetCore to chkr1011/MQTTnet Still using an older version of Xamarin forms. Once a new releas of Uno / Xamarin / Avalonia / Maui releases, the dust settles and I understand a bit I'll update the ui :-) I've striped out many of the old projects as they disract from the intent of this repository MqttChatApp demonstrating mqtt connection including TLS.
-
3/15/2019 Works on my machine! CA signed server certificate. Tested on iot.eclipse.org and my own letsncrypt secured mosquitto broker.
-
3/14/2019 Although I've been initally going down a self signed client certificate path, I'm switching my efforts to making the cocnnection on a mosquitto broker secured with a LetsEncrypt certificate or other CA signed server certificate.
-
2/25/2019 MqttSample retired in favor of MqttChatApp
There seems to be a real lack of a sample for my specific scenario of connecting a xamarin.forms application to a mosquitto broker in a secure way. There are lot's of examples of unsecured mqtt apps. Many people are running mosquitto brokers unsecured facing the internet. I've begun to take security in my applications seriously.
I'm using this repository to learn how to secure my Xamarin.Forms applications with for example a Let's Encrypt cerfificate. In a real world way!
Goal of the project is to demonstrate how to secure a XamarinForms app with TLS to connect to a Mosquitto broker.
Learn best practices / real world way(s) to install and use certificates in mobile apps supported by Xamarin.Forms UWP, android and ios
- iot growth
- iot security (lack of)
I've been unable to locate a sample demonstrating a secure connecton. I feel that this is an important topic to discuss and provide solution examples.
- Is there a platform way to;
- access certs?
- add new certs?
In the screenshot you'll see the syntax for mosquitto_pub from the command line configured with the Mqtt Sample app settings.
See Wiki/ScreenShots for additional page images
Help me find some great and current reading material. Maybe some videos? Again; Looking for real world examples of how to handle installing certificartes in the mobile apps UWP, Android and IOS. And then how to access them. Properly.
- If you configure DNS nameserver to return a hostname on a NATed ip address this code will bomb.
https://code.msdn.microsoft.com/windowsapps/M2Mqtt-MQTT-client-library-ac6d3858/view/Discussions
How to create a certificate request with CertEnroll and .NET (C#) https://blogs.msdn.microsoft.com/alejacma/2008/09/05/how-to-create-a-certificate-request-with-certenroll-and-net-c/
SSL Certificate Formats https://www.tutorialsteacher.com/https/ssl-certificate-format
Survival guides - TLS/SSL and SSL (X.509) Certificates http://www.zytrax.com/tech/survival/ssl.html
adrenalinehit/mqtt-subscriber.cs https://gist.github.com/adrenalinehit/ccfeba90264a02fb629f
Sign server and client certificates
https://jamielinux.com/docs/openssl-certificate-authority/sign-server-and-client-certificates.html
OpenSSL Certificate Authority https://jamielinux.com/docs/openssl-certificate-authority/
Associate a private key with the X509Certificate2 class in .net https://stackoverflow.com/questions/18462064/associate-a-private-key-with-the-x509certificate2-class-in-net
Important warnings about selfsigning https://mosquitto.org/man/mosquitto-tls-7.html
Possible useful sample
// https://gist.github.com/adrenalinehit/a4e2684a0b3b0a49b48e
https://www.bevywise.com/blog/creating-ssl-certificate-secure-mqtt-communication/
Self-Signed Certificates and Xamarin.Android https://dotnetdevaddict.co.za/2015/07/31/self-signed-certificates-and-xamarin-android/comment-page-1/
eclipse-paho/paho.mqtt.m2mqtt#67
How to create and import Self Signed Certificate to Android Device
https://hackernoon.com/the-most-promising-internet-of-things-trends-for-2018-10a852ccd189