But hello!, along comes letsencrypt.org. A service allowing you to create SSL certs for free! Now in public beta. Whoo hooo!
It isn't particularly pretty at the moment and certs only last 90 days but it seems to work ok. For Openshifts Wordpress gear you can't really do much customization (and probably don't want to) so installing letsencrypt on that looks messier than I'd like. Fortunately you can create a cert offline with letsencrypt and upload it to wordpress. Steps in a nutshell:
- Install letsencrypt locally. Use a Linux server or VM preferably.
- Request a new manual cert.
- Upload the specified file to your site.
- Complete cert request.
- Upload certificate to openshift.
- Install letsencrypt:
git clone https://github.com/letsencrypt/letsencrypt
- Request a new manual cert:
./letsencrypt-auto --agree-dev-preview -d <your-full-site-name> --server https://acme-v01.api.letsencrypt.org/directory -a manual auth -v --debug
- This command will pause to allow you to create a file and upload it to your website. The file needs to be placed in the /.well-known/acme-challenge folder and has a nice random/cryptic base-64 encoded name (and what appears to be a JWT token as contents). This is provided on screen and mine was called something like KfMsKDV_keq4qa5gkjmOsMaeKN4d1C8zB3W8CnwYaUI with the contents something like KfMsKDV_keq4qa5gkjmOsMaeKN4d1C8zB3W8CnwYaUI.6Ga6-vVZqcFb83jWx7pprzJuL09TQxU2bwgclQFe39w (except that's not the real one...). To upload this to an openshift wordpress gear site:
- SSH to the container. The address can be found on the application page on Openshift.
- Make a .well-known/acme-challenge folder in the webroot which can be done on the wordpress gear after SSHing via.
- Create the file with the required name/content in this location (e.g. see vi).
- Once uploaded and you're happy to contine, press ENTER back on the letsencrypt command as requested. Assuming this completes and manages to download the file you just created you'll get a response that all is well and the certificates and key will have been created.
- To upload these certs to your site (from /etc/letsencrypt/live/<your-site-name/ locally), go to the Openshift console > Applications > <your-app> > Aliases and click edit. This will allow you to upload the cert, chain and private key files as below. Note that no passphrase is required.You need to use fullchain.pem as the SSL cert on Openshift.com and leave the cert chain blank. If you don't do this then some browsers will work but other such as Firefox will complain bitterly...
- Save this and after a few mins you'll be done.
Once done, you can access the site via a secure HTTPS connection you should see a nice secure icon showing that the site is now protected with a valid cert :)
Details of letsencrypt.org supported browsers are on their website..