For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
This focuses on generating the certificates for loading local virtual hosts hosted on your computer, for development only.
Do not use self-signed certificates in production ! For online certificates, use Let's Encrypt instead (tutorial).