Server V3 (MQTT): AWS IoT Core support#1365
Server V3 (MQTT): AWS IoT Core support#1365shadowguardian507-irl wants to merge 19 commits intoopenvehicles:masterfrom
Conversation
|
James, welcome & thanks for trying to help. As you're new, I'll try to guide you instead of immediately closing this PR. If you really want to help, please…
There's possibly more. IOW, you better discard your AI results or just take them as the example they are, and reimplement this by yourself. Regards, |
|
Sorry I though that having this as a draft would mark it as a work in progress, apologies if that caused problems/issues, that was not my intent I am currently in the process of optimising things, but getting a baseline functioning firmware image was my first step on that process. |
|
re point 5 you are absolutely correct and I will be correcting the defaults in future commits |
- mTLS client certificate authentication (tlsclient commands) - Fix empty credentials sent as empty string instead of NULL - Bundle Amazon Root CA 1 in TLS trust store - keepalive.clamp option: clamps keepalive to 1200s max (AWS IoT Core limit) - retain.depth.limit option: omit RETAIN flag for topics >8 segments - Both options configurable via web UI and CLI; visible in 'server v3 status' - User guide updates (components.rst, commands.rst) and changes.txt
2be9685 to
88d7020
Compare
…palive clamp option
…MQTT keepalive requirements text block
…n in server configuration
|
one further question is should I not bundle the AWS CA cert with this ? On one hand, that would mean no changes under please can I get some advise on this ? |
If you add a general guide on setting up server V3 focusing on our public standard servers and finding and using other public MQTT brokers first, you're free to also add a section on AWS IoT Core there. Don't forget to add a section on self-hosting naming some common options.
Yes.
Yes. Keep it reduced to the actual user level news.
Create a separate PR for the AWS CA cert. |

This PR adds compatibility with AWS IoT Core as an MQTT broker for the OVMS Server V3 module, and introduces two new optional behaviour flags to handle broker-specific protocol restrictions.
mTLS client certificate authentication
Adds support for X.509 client certificate authentication via a new
tlsclientcommand set (tlsclient import,tlsclient status,tlsclient info,tlsclient check,tlsclient clear,tlsclient reload). Credentials stored under/store/tls/are passed to Mongoose as SSL client cert/key. Also fixes a bug where empty username/password were sent as empty strings instead of NULL, causingAUTHORIZATION_FAILUREon brokers that require cert-only auth with no credentials.The Amazon Root CA 1 certificate is bundled into the firmware trust store so that AWS IoT Core's server certificate can be verified without manual configuration.
keepalive.clamp (default: enabled)(scrapped in favour of a static note in the UI)AWS IoT Core enforces a hard maximum keepalive of 1200 seconds and disconnects clients that request higher values. When enabled, the keepalive is silently clamped to 1200s with a log warning. Can be disabled for brokers that support longer intervals via
config set server.v3 keepalive.clamp noor the web UI.retain.depth.limit (default: disabled)
AWS IoT Core silently drops retained messages on topics with more than 8 path segments. When enabled, the RETAIN flag is omitted for such topics to prevent silent message loss. Can be disabled for brokers without this restriction via
config set server.v3 retain.depth.limit noor the web UI.The new options are shown in
server v3 statusoutput.Addresses #1090 (authenticating to AWS IoT Core — closed by the original reporter, but the feature request was valid and is now implemented). Also extends the server-side TLS support introduced in #178 to cover full mutual TLS with client certificate authentication.
the above was last updated 2026-04-11