Blog / Security

Upgrading to Ubuntu 16.04, Python 3.6, and Django 1.11

August 12, 2017

I've finally decided to perform major version upgrades of the main components of this blog: the operating system (Ubuntu), the programming language (Python), and the web framework (Django). Doing these upgrades to the latest LTS (long-term support) versions will future-proof the stack for at least the next 3 years.

One of the main reasons you'd want to do this is to get the latest security updates. It's hard to keep up with ...

Generate random passwords on Linux with the "pwgen" command

February 26, 2017


With the recent Cloudflare hack ("CloudBleed"), I currently find myself resetting a bunch of passwords.

I tend to use very random passwords for most of my accounts, where each account uses a different random password. Thankfully, with tools like pwgen this is very quick and easy to do. Before using pwgen, I would normally go to a site like random.org to generate random passwords.

Using `pwgen` is very simple, just install it and type ...

Automatically generating and renewing Let's Encrypt SSL certificates with the certbot client and Ansible

August 11, 2016

I just finished updating my ansible-django-stack project and added tasks to automatically issue a Let's Encrypt SSL certificate and set up a cron job to auto-renew the certificate.

We're now using it for all our Shopify apps which are built in Django. Let's Encrypt certificates are only valid for 90 days, so if you have a bunch of web apps like we do and have more planned in the future, automating this ...

Generating free trusted SSL certificates with Let's Encrypt

July 19, 2016

I've always hated the idea of having to pay for SSL certificates. You could always generate them yourself for free with OpenSSL and they're just as secure as the paid ones. But if you're running a public-facing website, you're pretty much stuck and have to pay for one if you don't want your visitors seeing security warnings in their browser. At least that was the case until Let's Encrypt ...

Older