openssl is a very good command line tool that I have used to create self signed certificates. This will allow you to specify the values for each and every field in the certificate and it is available for both Linux and Windows.
basically you can create a self signed certificate using openssl in just one command
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out mycrt.pem -days 1000
This command will generate a keypair and a certificate with a validity of 1000 days.
You can become your own CA (of course your certificates will not be recognized/validated by browsers) and use this self signed certificate to sign other certificates for your personal use.This process will involve following steps using openssl.
- Generation of CSR- Certificate Signing Request
- Signing the request (as a CA) by using your self-signed certificate
- import the CA certificate in the browser under trusted CAs.
here is a good tutorial on creating your own CA model.