It reads the page's <link rel="canonical"> tag, resolves it to an absolute URL, and compares it piece by piece against the actual URL the page was fetched from: protocol (http vs https), host (including a www/non-www mismatch), trailing slash, and query string. A page that canonicalizes to itself passes cleanly; anything else is flagged with the specific mismatch found, not just a generic warning.
How to fix what it finds
Every issue here is one line in your page template — the href on the canonical <link> tag. Point it at the exact URL you want search engines to treat as authoritative, using the same protocol and host the site actually serves, then run the same URL through this tool again to confirm it lands as self-referencing.