Canonical tags should tell search engines which pages you prefer. They themselves do not mess up SEO, they help it. However, it is a level of detail that you want to watch out for.
For example, I can have a strong page on a topic and several smaller pages that, although appearing similar in the eyes of a search engine, help to make the topic more complete. These smaller pages could use a canonical tag to point to the page with more complete content. I'll come back to that.
Another example is where a product page can have options given to the user via parameters. The parameter pages may have a canonical tag that points to the product page without parameters.
If a 301 redirect exists, no canonical tag is required. Easily redirecting HTTP to HTTPS and example.com to www.example.com does not need to be covered by canonical tags.
Ask yourself this one thing. If a user tries to access my website, where should he go? You already define this with your redirects.
For all my pages, I use a canonical tag to point to the page the user is on. If I feel like I can rule out the search efforts by over-ranking pages in the search, I'll just create a canonical tag for all the pages I do not want to find in the search, and point to the page I'd rather find would like to search.
For example, on a website, I created a page on a topic that is very detailed. This is the page that everyone who is interested in my topic should visit first to get a complete overview of the topic. I've also created smaller pages that cover sub-topics on the larger page, which should not be fully discussed in the overview. I refer to these pages for readers who want to understand one or two paragraphs in more detail.
Because these pages, the summary pages, and the subtopic pages handle the same topic in different ways, there are duplications and search engines may not map the summary pages to the subtopic pages. For this, I create a canonical tag on the sub-topic pages to refer to the summary page that gives preference to the overview.
This does not mean that the subtopic pages are not found in the search. It just means that the overview is preferred over the others.
Regarding your homepage, I always recommend that the homepage refer to itself, as the users see after all the redirects. Your site should only be found in one direction. For example, if a user sees your website through www.example.com and example.com, you will not be able to edit your search queries. This is because both are different websites in the eyes of a search engine. If you redirect example.com to www.example.com, let search engines know that www.example.com is the desired site.
If you redirect all HHTP requests and all example.com requests to https www.example.com, HTTPS www.example.com is the canonical tag you should place on your homepage. It is not necessary for you to create a canonical day for it. Many, however, recommend it just like me. It certainly does no harm.