http posts

It was recently discovered that Cogneato websites' HTTPS certificates were cross-signed by an expired AddTrust certificate, and were showing security warnings in old versions of Safari. Continue reading post "#2949"


Wordpress.com redirects don't support HTTPS

Gah. Apparently wordpress.com is discouraging 'https' for self-hosted blogs: Their redirection service does not allow any protocol but 'http'. I could swear it did when I first set it up, as I remember typing in my URL with 'https' and I thought I tested it with curl -I to make sure it works, but the docs have an explicit note saying:

Note: Site redirects will only point to a non-ssl ( http:// ) url.

I don't remember seeing it before, but the wayback machine suggests it was there since 2013, well before I switched to self-hosted.

Continue reading post "Wordpress.com redirects don't support HTTPS"

Self-signed certificate for testing

In playing with service workers, I set up a self-signed SSL certificate for my local development environment. I used instructions from debian.org. It was very simple, since I didn't need the security involved with a real operating site. Creating the certs took a single command:

openssl req -new -x509 -days 365 -nodes -out /path/to/server/config/certs/sitename.pem -keyout /path/to/server/config/certs/sitename.key

You then just need to set things up in the server configuration (Apache in my case). mod_ssl must be installed and enabled, which looks something like:

LoadModule ssl_module modules/mod_ssl.so
Continue reading post "Self-signed certificate for testing"

My sites now HTTPS with LetsEncrypt

My sites are now HTTPS-enabled with LetsEncrypt. It was easy to set up with Dreamhost's panel. It was just a few clicks and some waiting. This is the first time my own sites have been available over HTTPS. I've been wanting to do it for a while, but it was kind of costly until the free LetsEncrypt became available. This brings my sites in line with the "HTTPS Everywhere" movement. I've also been wanting to play with the new installable apps forming standard for making web apps installable almost like native apps.

I had written a post before about how I'm setting my security-related headers. I've now added an HTTPS related header in a similar manner: Upgrade-Insecure-Requests and HSTS.

Continue reading post "My sites now HTTPS with LetsEncrypt"

Security HTTP Headers

I've been working on the HTTP headers my site sends recently. I had been working on performance / cache related headers, but after seeing mention of a security header scanner built by Scott Helme, I decided to spend a little time implementing security related headers on my site. I don't really know these headers that well, so I added the headers it suggested and mostly went with the recommended values. I did read up a bit on what they mean though and modified the Content-Security-Policy as I saw fit.

I added most of the headers using a Symfony reponse event listener. This handles all of my HTML responses without sending the headers for other responses, where they aren't necessary. The exception is the X-Content-Type-Options, which should be set for all responses. I set that in Apache configuration.

Continue reading post "Security HTTP Headers"

Load Balancers and HTTPS

Until recently, I had no experience working with sites behind load balancers. Cogneato has been moving its sites to Rackspace virtual servers for flexibility, among other things. One of their recommendations that we took was to put our web server behind a load balancer. Even though we haven't needed multiple nodes behind it yet, it makes it easier to upgrade the server behind it without needing to change IPs in DNS and will allow us to easily pop up another node when it is needed.

This arrangement has gone relatively smoothly except a few issues. The biggest ones have had to do with our HTTPS sites. We run both HTTP and HTTPS sites on the same server. We put the certificates on the load balancer, so traffic goes from the load balancer to the web server over HTTP. Both Apache and code see the request as HTTP as standard methods are concerned. I will discuss some of the problems we had and solutions I found.

Continue reading post "Load Balancers and HTTPS"

</toby>