Skip to content

Set SSL_CERT_DIR for embedded Go services

We tell our users to install custom SSL certificates into /opt/gitlab/embedded/ssl/certs/. These certificates then get picked up by everything in omnibus-gitlab that uses OpenSSL.

However, we also have some Go programs in omnibus that use Go's own crypto/tls library instead of OpenSSL (e.g. gitlab-workhorse, see gitlab-workhorse#177 (closed)). These programs will ignore /opt/gitlab/embedded/ssl/certs/.

It turns out we can tell crypto/tls about /opt/gitlab/embedded/ssl/certs/ by setting SSL_CERT_DIR=/opt/gitlab/embedded/ssl/certs/. I suggest that we go through all our Runit services that spawn Go programs and add this setting to the default env hash. It has been reported in gitlab-workhorse#177 (closed) that this works.