top | item 8790598

How to set up stress-free SSL on an OS X development machine

103 points| dltj | 11 years ago |gist.github.com

22 comments

order

fideloper|11 years ago

Only gripe is being told to match Dev with production ... And then develop on Mac OS.

Virtual machines are a much cleaner and nicer way to do this. Setting up a wildcard SSL is similarly as simple, an you get the bonus of learning how to do it on a "real" (normal, more standard) server.

Example setting up wildcard subdomain SSL cert (self-signed): https://serversforhackers.com/ssl-certs/

jedschmidt|11 years ago

Having gotten more accustomed to the VM approach over the past year since I wrote this post, I agree.

eosrei|11 years ago

The development process is much less complicated when you only consider a single OS. The answer to: "How do I do this?" is always the same; a significant time/brain savings.

daurnimator|11 years ago

I use ngrok (https://ngrok.com/), which tunnels a local port and makes it available over ssl on an ngrok.com subdomain.

Makes it easy to develop from any machine, and even allows me to check it out from other machines. Including things like browserling.

On top of that, it can record and replay requests for you as you debug.

bensummers|11 years ago

I use multicast DNS so that my server in a development VM can automatically publish a hostname to the host for testing.

http://bens.me.uk/2013/multicast-dns-and-development-virtual...

This is especially useful as my application is multi-tenant, where you can potentially use lots of different hostnames.

I'm wary of trusting a development certificate on my development machines. One slight misconfiguration, and you've got a CA with a well-known private key which can be used to generate certificates for any name. Which would be very useful for MITMing a rather important machine.

I accept the inconvenience of having to click through the warnings, with conscious awareness of what I'm doing to avoid training myself to ignore them. I'm not entirely sure which is the bigger risk.

iancarroll|11 years ago

Keychain Access makes creating a certificate authority very easy - you might as well just use that...

Besides, I don't understand why you would choose not to trust the certificate, then click it and choose to trust it...

tbyehl|11 years ago

For the non-OS X crowd, XCA is a really simple GUI for managing your own CA. Just about everything I have that can use an SSL certificate has one that all of my machines trust.

http://xca.sourceforge.net/

geofft|11 years ago

/etc/resolver is pretty cool. I wish it were better-documented / better-known. (I guess `man 5 resolver` documents it.)

I also wish glibc had something similar.

e28eta|11 years ago

Pow is a nice project for handling DNS resolution and forwarding a specific name to a service running on a non-standard port.

I've put Apache with a wildcard cert (& local CA) in front of it to handle SSL termination.

It's very similar to the technique from the article, but I've found the ability to serve requests on the default port to be convenient.

pbreit|11 years ago

I didn't see self-signed certs as an alternative. Isn't that a common and reasonable approach?

philfreo|11 years ago

This describes setting up a self-signed cert