Openmediavault

moving existing CA into Hashicorp Vault

Vault is much more then a simple key/value store for user credentials

In my last post I setup up a HashiCorp Vault to store credentials like Google API-keys, username/password combinations and also my private and public key for my SSL certification authority.

The SSL certificates are stored in vault so that they can be used within the CI/CD pipeline. They were stored as simple strings in the kv backend, which is in no way optimal.

trouble with selfsigned SSL certificates

What changed since my last post on certificates

Since my last post almost two years ago I updated my homeserver significantly with new hardware. With this new hardware I am able to run a lot more services and thus grew the wish to access them by their own DNS name. With the wildcard certificate it was no problem to securely access them from any browser.

Things changed when I started integrating these into the Jenkins pipelines. I got the following error message:

Setting an HashiCorp Vault

Why do you want your own Vault for your DevOps Pipeline

Todo: Add some motivational stuff here

Setup using Docker on my server without ready the docs first

As usual I setup all of the required tools as docker containers. Luckily HashiCorp provides a ready image which just needs to be started as then the UI is readily accessable on port 8200 for your HTTP-Requests. Due to some other maintenance on the server I had to reboot the server, but this is no issue as the docker container can be configured to restart automatically.

Implementing my own CA

Intention and original situation

The move to encryption everywhere is inevitable. Soon browsers (starting with Chrome) will be blocked unencrypted HTTP requests. Google announced this in a recent blog post. So in order to prepare for this, my own home server installation needs a proper CA and certificates.

Creating the certification authority

I chose to use my NAS as the host for the CA for now as openssl was already installed. For the CA I followed the excellent instructions from Jamie Nguyen (link). The detailed instructions I used to create the Root CA are detailed here:. Only the Root CA will be used so I chose the less strict policy and used