devz-docz

Aggregation of onboarding and general devz standards that I have gatherd over my career.

View on GitHub

InfraSec / SSL Certificates

SSL Certificates are most commonly used to verify a server’s identity and encrypt HTTP traffic. Usually, I try to use offerings like Amazon’s AWS Certificate Manager to eliminate the toil of obtaining certificates and keeping them up to date.

However, this isn’t always feasible. Sometimes I can use self-signed certificates if it will not be exposed to users (for instance, to encrypt the connection between containers and their ALB), but in many cases I’ll need to get a real certificate.

Note: TLS (Transport Layer Security) is essentially the second generation of SSL. It is not uncommon for both terms to be used interchangeably at this point, but “real” SSL is deprecated. Any modern systems should be using TLS.

Getting a real certificate

Let’s Encrypt

Let’s Encrypt provides free short-lifetime certificates; they also provide a daemon which can autorenew these certificates if you are running on actual hosts (or full instances) where running an additional daemon makes sense. However, this doesn’t work for many of my use cases, where I are trying to run my applications in bare containers.

SSLMate

If you need to get a certificate and cannot use a service like ACM or Let’s Encrypt, you can get one via SSLMate; they offer a command line client that makes it relatively easy to get new certificates or update old ones, autorenewal, and a reasonable price for one-off certificates. Their documentation is here but the general process is this:

External resources