Lets face it, setting up SSL can be a beyatch. Apart from setting up locally, then it is really easy (comparatively).
Definitions
- SSL
- Secure sockets layer - a protocol which encrypts data so it is only decrypt-able between the sessions client and server. If you intercept any of the packets they will look like jumbled nonsense
- TLS
- Transport layer security. A more efficient and secure protocol than SSL
- HTTPS
- Hypertext transfer protocol secure, which means it implements SSL
- Digital certificate
- An identifying document for a person, device, domain, organisation, publisher etc. Like a passport. It is issued by a trusted authority (or can be self-signed)
- SSL certificate
- An digital certificate containing things such as version, serial number, signature, valid dates, name of owner, public key, subject, and who issued the certificate etc. It attests that you is legit
- CA
- Certificate Authority. An organisation that issues digital certificates if you can prove you own the domain
Creating unsigned local certs
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /path/localhost.key -out /path/localhost.crt
Lets Encrypt
Letsencrypt is a free, automated, and open Certificate Authority. I was going to write a lot more details but this awesome guide will show you how to setup a certificate and use in Nginx.