Certbot

From the website: "Anyone who has gone through the trouble of setting up a secure website knows what a hassle getting and maintaining a certificate can be. Let’s Encrypt automates away the pain and lets site operators turn on and manage HTTPS with simple commands."

There are several options.

Preliminary
Point an external IP at http (port 80/tcp) and https (port 443/tcp) at a webserver and setup DNS for it. This is important. You have to prove you own the IP/domain. You could use dynamic DNS if necessary.

app-crypt/letsencrypt
This is the ebuild for the official client which can be tricky to set up: Here are the official docs - https://letsencrypt.readthedocs.org/en/latest/intro.html

acme-tiny
acme-tiny is a short Python script which is useful for a quick way to get started

Grab this: https://github.com/diafygi/acme-tiny/ via GIT and put the .py in /usr/local/bin or:


 * Make a directory for challenges to be created in


 * Add this to your Apache http vhost - ie port 80 vhost


 * Set these in your Apache https vhost - ie port 443 vhost


 * Make a directory to hold the various files related to LE


 * Create an account key, domain key and a CSR (replace www.example.co.uk with your host name)


 * Register and create the various certificate files


 * Restart Apache (systemd)


 * Restart Apache (OpenRC)


 * Renewal script


 * Add a monthly cronjob