I’ve been a long-time user of Pow to manage my local development environment. If you’re not familiar, it maps local hostnames like
http://myapp.dev to a folder (say,
~/projects/myapp) and will start/stop the
myapp project’s development server with Rack.
This worked great… until Chrome 63.
Chrome 63, released December 6, 2017, requires all
.dev domains to be loaded over
https because Google purchased the
.dev top-level domain and decided it would require
https via HSTS.
I found this gem in the Pow release notes:
This is the last release for the forseeable future. Check out puma-dev for a contemporary alternative.
Migrating from pow to puma-dev
Although I could have upgraded Pow to fix the issue, Pow hasn’t been working well with features required to build more modern apps like websockets and SSL certificates — so I was well ready to move along to something new. My upgrade steps:
curl get.pow.cx/uninstall.sh | sh
brew install puma/puma/puma-dev
sudo puma-dev -setupto do some more junk (configuring /etc/resolver, but you don’t need to know anything about that).
puma-dev -install -d localhostto bind puma-dev to
.localhostdomains. I chose
.localhostbecause it’s obvious what it’s doing (
myapp.localhostclearly points to your machine) instead of the other newly-emerging standard,
puma-dev linkin each app directory to symlink them to subdomains of
You may need to resolve a Root CA issue, see below.
Now, I’m able to access
http://myapp.localhost happily (as well as
Resolved Root CA Issue
After following the above steps, I began to have an issue where the automatically-generated SSL certificates used for HTTPS were only trusted in some cases. Turns out the issue was that puma-dev had installed the root CA certificate in my login keychain, and not in the system one. To fix:
- Launch “Keychain Access” from Applications.
- Search for the “Puma-dev CA” certificate.
- Drag the certificate to the “System” keychain.
- Enter your password to allow the change.
- Restart the application where certificates were not trusted (Chrome, for example).