This certificate authority manages the trust within a INAETICS cluster.
It is really important to generate a key pair before deploying the CA anywhere in production. The best way would be to generate a root key pair first, which is kept completely safe in an offline storage. These keys can be used to generate a intermediate certificate for this certificate authority.
Keys can be generated using this command:
cfssl genkey -initca /etc/cfssl/ca.json | cfssljson ca
Read below for details on how to install cfssl locally.
There are a couple things that have to be configured specific to the system. These things can be configured in the inaetics-ca/ca-config.json
file. Please note, that if you change the port of the CA, you also have to modify the Dockerfile
.
- The time that a certificate is valid
backdate
sets the duration for which the cert will be dated back, to prevent overlapping.- Except for
default
, multiple profiles can be defined. This can f.e. be used to used very short lifespans of certificates for critical parts of infrastructure and longer lifespans for not important parts. This feature has to be implemented in the "C implementation Trust Manager" and the "Java implementation Certificate Service".
More information on how to configure the CFSSL CA can be found here.
In the current version of the CA, the keys are included in to the docker image. This is just intended to make the development process easier and CAN NOT BE USED IN PRODUCTION. Please mount a volume or use environment variables for the keys, depending on your orchestration technology. Example using secrets in Kubernetes.
If this certificate authority is being run in the demonstrator project, it should be tagged with the following tag.
172.17.8.20:5000/inaetics/inaetics-ca
To run the container please execute to expose the port 8888.
$ docker run -p 8888:8888 172.17.8.20:5000/inaetics/inaetics-ca
- Install go
- Get all cfssl tools to your
$GOPATH
$ go get -u github.com/cloudflare/cfssl/cmd/...
Make sure you have $GOPATH/bin/
in your $PATH
Detailed info: https://github.com/cloudflare/cfssl/blob/master/BUILDING.md
1.0